Javascript 带有ReactJS的动态页面标题

Javascript 带有ReactJS的动态页面标题,javascript,reactjs,dynamic,title,Javascript,Reactjs,Dynamic,Title,我想在ReactJS上创建一个动态页面标题。我尝试了很多事情,但没有成功。我用数据创建一个数组: let pageTitles = [ {key:"/Home", title:"Welcome Home"}, {key:"/SecondPage", title:"Shop"}, {key:"/ThirdPage", title:"ContactUs"}, ]; 在html中只有,我使用让pathname=window.location.pathname如果返回“/Hom

我想在ReactJS上创建一个动态页面标题。我尝试了很多事情,但没有成功。我用数据创建一个数组:

let pageTitles = [
    {key:"/Home", title:"Welcome Home"},
    {key:"/SecondPage", title:"Shop"},
    {key:"/ThirdPage", title:"ContactUs"},
];
在html中只有
,我使用
让pathname=window.location.pathname如果返回“/Home”或“/ThirdPage”以动态设置新标题。
我试过这样的方法:

for (var i = 0, len = pageTitles.length; i < len; i++) {
        if (pageTitles[i].key === pathname) {
            var hhh = pageTitles[i].text;
        }
    }
document.title = hhh
for(变量i=0,len=pageTitles.length;i

但显然没有起作用。如果有这样的主题,我很抱歉,但我没有找到它。我对安装模块有限制。

如果您需要避免安装模块,可以将其作为帮助文件进行安装,然后将其导入到您需要的模块中并调用
componentDidMount

export function seo(data = {}) {
  data.title = data.title || 'Default title';
  data.metaDescription = data.metaDescription || 'Default description';

  document.title = data.title;
  document.querySelector('meta[name="description"]').setAttribute('content', data.metaDescription);
}
从“React”导入React;
从“../helpers/seo”导入{seo};
导出默认类SomeClass扩展组件{
建造师(道具){
超级(道具);
};
componentDidMount(){
搜索引擎优化({
标题:“这是我的标题,仅显示在本页上”,
metaDescription:“带有一些metaDescription”
});
}
render(){
返回你好世界;
}
}
您也可以在任何地方直接调用
document.title='My new title'
,但如果将其提取为函数,则可以选择使用默认函数,并在需要时提供覆盖


编辑:检查代码后,如果更改
hhh=pageTitles[i].text
to
hhh=pageTitles[i].title它会工作的。最好在循环之外声明
var
。如果您需要避免安装模块,您可以将其作为帮助文件,然后将其导入到您需要的模块中,并调用componentDidMount

export function seo(data = {}) {
  data.title = data.title || 'Default title';
  data.metaDescription = data.metaDescription || 'Default description';

  document.title = data.title;
  document.querySelector('meta[name="description"]').setAttribute('content', data.metaDescription);
}
从“React”导入React;
从“../helpers/seo”导入{seo};
导出默认类SomeClass扩展组件{
建造师(道具){
超级(道具);
};
componentDidMount(){
搜索引擎优化({
标题:“这是我的标题,仅显示在本页上”,
metaDescription:“带有一些metaDescription”
});
}
render(){
返回你好世界;
}
}
您也可以在任何地方直接调用
document.title='My new title'
,但如果将其提取为函数,则可以选择使用默认函数,并在需要时提供覆盖


编辑:检查代码后,如果更改
hhh=pageTitles[i].text
to
hhh=pageTitles[i].title它会工作的。最好在循环之外声明
var
。如果有默认值也很好。

可能会有帮助。我忘了写我有安装模块的限制。很抱歉,可能是May Help的副本我忘了写我有安装模块的限制。对不起,可能是重复的