我正在使用
Gatsby
的包含项
react-helmet
要显示
<title />
和
<meta />
中的标记
<head />
. 我真正想做的是将相同的标题发送给我的全球
<Header />
组件,以便标题显示在页面的实际文本以及标题中。我如何使用React完成这样的任务?我习惯于余烬,在那里我可以
pageTitle
属性,并将其传递给组件,以及更新
<压头/>
具有类似余烬虫洞的值。
我知道我可以使用Flux作为全局状态,或者我可以将setTitle传递给我的页面组件,它们可以在每个页面组件的
componentDidMount
,但有没有更好的方法来处理这个问题?可能使用React路由器4?
到目前为止,我能够像这样理解位置上下文:
const TemplateWrapper = (args) => {
const { children, location } = args
return (
<div>
<Helmet title={location.pathname} />
<Header title={location.pathname} />
<div>
{children()}
</div>
</div>
)
}
因此,我可以在其中添加一个函数,根据路径查找页面标题,但我希望页面的“标题”改为全局设置。