在 React 中操作 <html> 或 <body> 标签

IT技术 dom reactjs
2021-04-26 10:32:26

在 React 中操作<html>or<body>标签的最佳方法是什么

例如,动态设置 'lang' 属性或更改类?

<html lang="en" class="ltr">

我可以使用原始 DOM 操作来做到这一点。但这是正确的方法吗?

2个回答

我刚刚遇到了这个用例,我想<html>在用户切换语言时修改lang 属性。
React Helmet实际上使这变得非常简单。

只需从您的react状态中获取 lang 并将其传递给您应用程序中任何位置的 Helmet 组件:

<Helmet htmlAttributes={{ lang : this.state.lang }}/> // with this.state = { lang : 'en' }

可以直接更改 lang 属性,您可以这样做更改的值 document.documentElement.lang

例如:

var newLang = 'fr';
...
document.documentElement.lang = newLang; // will set the lang property to 'fr'