React js 动态更改元标记
React js change meta tags dynamically
我的应用程序有两个流程,一个是用户端,另一个是管理员端。我的用户端有响应,所以我希望元标记显示 <meta name="viewport" content="width=device-width, initial-scale=1" />
而我的管理端没有响应,所以我想强制浏览器以桌面模式打开,这要求此元标记像这样 <meta name="viewport" content="width=1024" />
我正在对以下对象使用 react-document-meta
const metaUser = {
title: "User meta tags",
description: "Basically make the application responsive when on user side",
meta: {
name: { keywords: "viewport" },
content: "width=device-width, initial-scale=1",
},
};
const metaAdmin = {
title: "Admin meta tags",
description: "Make the application default in desktop mode",
meta: {
name: { keywords: "viewport" },
content: "width=1024",
},
};
但它在 head 标签上创建了新的元数据,而这些标签不起作用
我建议使用 react-helmet
。
您可以使用 npm 命令安装它:npm i react-helmet
然后在您的 component/page 中导入:
import {Helmet} from "react-helmet";
并使用 Helmet
组件内的所有标签,您可以将其放入 html
中的常规 head
标签内,语法为 jsx
<Helmet>
<title>{`${admin ? "Admin Title" : "Client Title"}`}</title>
<meta name="description" content={`${admin ? "Admin Content" : "Client Content"}`} />
</Helmet>
我的应用程序有两个流程,一个是用户端,另一个是管理员端。我的用户端有响应,所以我希望元标记显示 <meta name="viewport" content="width=device-width, initial-scale=1" />
而我的管理端没有响应,所以我想强制浏览器以桌面模式打开,这要求此元标记像这样 <meta name="viewport" content="width=1024" />
我正在对以下对象使用 react-document-meta
const metaUser = {
title: "User meta tags",
description: "Basically make the application responsive when on user side",
meta: {
name: { keywords: "viewport" },
content: "width=device-width, initial-scale=1",
},
};
const metaAdmin = {
title: "Admin meta tags",
description: "Make the application default in desktop mode",
meta: {
name: { keywords: "viewport" },
content: "width=1024",
},
};
但它在 head 标签上创建了新的元数据,而这些标签不起作用
我建议使用 react-helmet
。
您可以使用 npm 命令安装它:npm i react-helmet
然后在您的 component/page 中导入:
import {Helmet} from "react-helmet";
并使用 Helmet
组件内的所有标签,您可以将其放入 html
中的常规 head
标签内,语法为 jsx
<Helmet>
<title>{`${admin ? "Admin Title" : "Client Title"}`}</title>
<meta name="description" content={`${admin ? "Admin Content" : "Client Content"}`} />
</Helmet>