如何解决在生产模式下,反应头盔异步不起作用,反应头盔异步如何工作?
最近,我开始在 React 中使用元标记。经过一番研究,我发现 react-helmet-async 是为每个页面设置元标记的最佳库。但是,我想有条件地为几个页面设置元标记。
我为两个页面设置了不同的元标记,看看...
index.js
ReactDOM.render(
<React.StrictMode>
<HelmetProvider>
<App/>
</HelmetProvider>
</React.StrictMode>,document.getElementById('root')
);
pageOne.jsx
componentDidMount(){
axios.get('/getTrack/',{params: {id: this.props.match.params.id}})
.then((res) => this.setState({trackData: res.data,isLoading: false}))
.catch((err) => console.log(err))
}
render() {
return (
this.state.isLoading?
<div className="page-loader">
<Helmet>
{/* Page sittings */}
<meta charset="utf-8" />
<meta name="theme-color" content="#000000" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
{/* Primary Meta Tags */}
<title>Loading...</title>
</Helmet>
</div>
:
<div className="main-page">
<Helmet>
{/* Page sittings */}
<meta charset="utf-8" />
<meta name="theme-color" content="#000000" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
{/* Primary Meta Tags */}
<title>{this.state.trackData.title}</title>
<meta name="title" content={this.state.trackData.title}/>
<meta name="description" content={this.state.trackData.desc}/>
{/* Open Graph / Facebook */}
<meta property="og:type" content="website"/>
<meta property="og:url" content="https://example.com/"/>
<meta property="og:title" content={this.state.trackData.title}/>
<meta property="og:description" content={this.state.trackData.desc}/>
<meta property="og:image" content="/logo192.png"/>
{/* Twitter */}
<meta property="twitter:card" content="summary_large_image"/>
<meta property="twitter:url" content="https://example.com/"/>
<meta property="twitter:title" content={this.state.trackData.title}/>
<meta property="twitter:description" content={this.state.trackData.desc}/>
<meta property="twitter:image" content="/logo192.png"/>
</Helmet>
</div>
)
}
pageTwo.jsx
<Helmet>
{/* Primary Meta Tags */}
<title>XYZ</title>
<meta charset="utf-8" />
<meta name="title" content="xyz"/>
<meta name="theme-color" content="#000000" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<meta name="description" content="xyz"/>
{/* Open Graph / Facebook */}
<meta property="og:type" content="website"/>
<meta property="og:url" content="https://example.com/"/>
<meta property="og:title" content="xyz"/>
<meta property="og:description" content="xyz"/>
<meta property="og:image" content="/logo192.png"/>
{/* Twitter */}
<meta property="twitter:card" content="summary_large_image"/>
<meta property="twitter:url" content="https://example.com/"/>
<meta property="twitter:title" content="xzy"/>
<meta property="twitter:description" content="xzy"/>
<meta property="twitter:image" content="/logo192.png"/>
</Helmet>
“反应”:“^17.0.1”
"react-helmet-async": "^1.0.9",
我使用 django 作为后端
它在开发模式下工作,但不在生产模式下工作。我的网络应用没有任何元标记,我不明白 react-helmet-async 是如何工作的?
这种元标签是否可以共享?
这种工作的替代解决方案是什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。