我在I18nManager.forceRTL(true)
或initialState
生命周期中使用componentDidMount
,但是它不起作用,如果我重新加载我的应用程序,它将起作用。
我的意思是我必须重新加载该应用才能看到效果,这是什么原因?
提前致谢
最佳答案
要重新加载该应用程序,您可以使用react-native-restart
安装模块后,可以按以下方式使用它:
// Add these at the top of your component file
import RNRestart from 'react-native-restart';
import {I18nManager} from 'react-native';
// Then use it
...
I18nManager.forceRTL(true);
RNRestart.Restart();
如果要在组件的componentDidMount函数内使用它,则需要仅运行一次此代码,而不是运行更多代码:
// Inside of your component class
componentDidMount() {
if(!I18nManager.isRTL) {
I18nManager.forceRTL(true);
RNRestart.Restart();
}
}