React-Helmet父组件<title>优先

时间:2017-09-15 19:24:42

标签: javascript reactjs react-helmet

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

0 个答案:

没有答案