在React中操纵<html>
或<body>
标签的最佳方法是什么?
例如,动态设置“lang”属性还是更改类?
<html lang="en" class="ltr">
我可以使用原始DOM操作来做到这一点。但这是正确的方法吗?
我刚刚遇到这个用例,我想在用户切换语言时修改<html>
lang属性。
React Helmet实际上这很简单。
只需从您的反应状态获取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'