Can';t使用Helmet运行脚本标记获取Reactjs

Can';t使用Helmet运行脚本标记获取Reactjs,reactjs,react-helmet,Reactjs,React Helmet,我在Reactjs中使用Healmet来提供每页的元数据,这在我想在标记中提供模式标记之前是很好的。我正在按照文档描述的方式实现,但是由于我的标记来自api,我需要转义代码以返回函数,我得到了这个错误 TypeError:标记[primaryAttributeKey]。toLowerCase不是函数 如果脚本只是页面上的一个字符串,那么它就可以工作,但是当我调用函数时,它会出错 这是我的密码 async componentWillMount(){ var data = await

我在Reactjs中使用Healmet来提供每页的元数据,这在我想在标记中提供模式标记之前是很好的。我正在按照文档描述的方式实现,但是由于我的标记来自api,我需要转义代码以返回函数,我得到了这个错误

TypeError:标记[primaryAttributeKey]。toLowerCase不是函数

如果脚本只是页面上的一个字符串,那么它就可以工作,但是当我调用函数时,它会出错

这是我的密码

async componentWillMount(){
        var data = await api.schema();
        this.setState({schema: data.data});
        console.log(this.state.schema);
    }


    getSchema(){
        if(this.state.schema.length){
            return this.state.schema.map((content,index) => {
                var pageschema = content.PageSchema;

                return(
                    pageschema
                );
            })
        }
    }

render() {
        return (

        <div>
            <Helmet>
                <meta charSet="utf-8" />
                <title>Title title title</title>
                <meta name="description" content="this is a page description"></meta>
                <link rel="canonical" href="xxx" />
                <script type="application/ld+json">{this.getSchema()}</script>
            </Helmet>
...

有人有什么建议吗?

要工作,您需要在发送
头盔之前对阵列进行字符串化:

getSchema(){
const{schema}=this.state
if(schema.length){
返回`${JSON.stringify(
schema.map((内容、索引)=>{
const pageschema=content.pageschema;
返回(
页面架构
);
})
)}`
}
}
"@context": "https://schema.org",
"@type": "Organization",
"name": "xx",
"alternateName": "xx",
"url": "xx",
"logo": ""