我有一个问题,我需要将javascript对象注入(inject) HEAD HEAD 标记中,以进行标记管理。
这是我的 Helm 组件,但它仅接受通过rewind()函数设置为元数据服务器端的特定参数。
还有什么方法可以使用React Helmet来完成我需要的工作,因此,将javascritpt对象创建到 SCRIPT 标记中还是应该采用其他方法?
MyComponent.js
<Helmet
title={article.get('title')}
meta={[
{"property": "og:title", "content": article.get('title')},
{"property": "og:url", "content": article.get('url')},
{"property": "twitter:title", "content": article.get('title')}
]}
/>
server.js
let htmlHead = `
${head.title}
${head.meta.toString()}
`;
谢谢你的支持
最佳答案
更新
自2017年以来的答案适用于v3的react-helmet,但现在已经有些过时了-现在有一种更好的方法,直接使用script标签,如newer answer中所引用,我建议这样做。
将为后代以及使用较旧版本的 Helm 的人提供此答案。但请注意,尽管这是投票率最高的答案,但它不再是最佳答案。
您可以使用Helmet的innerHTML
Prop 上的script
属性在嵌入式脚本中定义对象-该属性是在Helmet 3.0.0中引入的
<Helmet
script={[{
type: 'text/javascript',
innerHTML: 'window.yourObject = { it: "works" }'
}]}
/>