< p>我有一个应用程序,它异步加载数据并使用Helmet。
我在App.js和子组件Category.js中有一个组件。< / p>
< p>每当类别获得足够的数据以便它可以更新页面属性时,我希望孩子的头盔组件会覆盖应用程序的标题标签。< / p>
< p>在< strong> App.js'< / strong> render()方法:< / p>
< p>< div class =" snippet"数据琅=" JS"数据隐藏="假"数据的控制台="真"数据巴贝尔="假">
< div class =" snippet-code">
< pre class =" snippet-code-js lang-js prettyprint-override">< code>< Helmet
onChangeClientState = {(newState)=> console.log('更改应用:',newState,'标题:' + this.props.siteInfo.site.title)}
标题= {this.props.siteInfo.site.title}
>
< meta property =" twitter:title" content = {this.props.siteInfo.site.title} />
{urlTag}
{链接标记}
< meta property =" og:title" content = {this.props.siteInfo.site.title} />
< meta property =" og:type"含量="网站" />
< meta property =" og:description" content = {this.props.siteInfo.site.title} />
{favicons.map(icon => {
返回图标
})}
< /头盔>< /代码>< /预>
< / DIV>
< / DIV>
< / p为H.
< p>在< strong> Category.js'< / strong> render()方法:< / p>
< p>< div class =" snippet"数据琅=" JS"数据隐藏="假"数据的控制台="真"数据巴贝尔="假">
< div class =" snippet-code">
< pre class =" snippet-code-js lang-js prettyprint-override">< code>< Helmet
onChangeClientState = {(newState)=> console.log('更改类别:',newState,'标题:' +标题)}
标题= {标题}
>
< meta property =" og:title" content = {title} />
< meta property =" og:description" content = {title} />
< meta property =" twitter:title" content = {title} />
< /头盔>< /代码>< /预>
< / DIV>
< / DIV>
< / p为H.
< p>如果我重新加载类别路线,我希望标题标签在其数据从API返回后成为类别。但是它总是在App中呈现的网站标题。我可以看到这一点,因为App&#39< code> onChangeClientState< / code> function是控制台中记录的最后一件事。我希望Category' s< code> onChangeClientState< / code>最后开火。< / p>
< p>如果我稍微浏览一下网站(转到主页并回到类别),结果就是我所期望的。但是,在简单的页面刷新中,子组件不会呈现它的头盔标题。< / p>
< p>我认为我误解了Helmet中的数据流< / p>