html React helmet没有覆盖title和 meta标签

crcmnpdw  于 2023-05-12  发布在  React
关注(0)|答案(1)|浏览(314)

我在react中开发了一个项目。我在index.html中给出了默认的title标签和 meta标签。我正在尝试使用react-helmet通过props更新每个页面的title和 meta标签。标题标签得到更新,但只有几秒钟。每当我在5-10秒后更改浏览器选项卡时,标题都会恢复为默认值。至于其他 meta标记,这些标记根本不会覆盖。

index.html

<head>
  <title>Content...</title>
  <meta name="description" content="description/>
</head>

我的组件

<Helmet>
  <title>{this.state.meta_title}</title>
  <meta name="description" content={this.state.meta_description}/>
</Helmet>

我尝试使用***data-react-helmet=“true”***。

<meta name="description" content={this.state.meta_description} data-react-helmet="true"/>

但没有用我试图解决这个问题,从过去两天,但没有运气。如果有人能帮我,请帮帮我。

更新

我有办法了。我正在调用页面内的** Helm 。当我调用App.js文件中的Helmet**组件时,它开始工作。标题问题已修复,但 meta标记未更新。新的 meta标签可以添加到头部的底部。

xmjla07d

xmjla07d1#

data-react-helmet=“true”现在替换为data-rh=“true”
就像@TomFinney说的:只需在index.html中的标签上添加data-react-helmet="true"即可。由于react-helmet在更新这些元素时通过属性标识它们。
index.html

<title>From Index</title> <!-- title is an exception and does not require it -->
<meta name="description" content="From Index" data-react-helmet="true" />

App.jsx

<Helmet>
  <title>From Helmet</title>
  <meta name="description" content="From Helmet" />
</Helmet>

Works:2016| https://codesandbox.io/s/tender-gould-e8bnj8?file=/src/App.js
你可以通过在浏览器中禁用javascript来测试它。

相关问题