我在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();
    }
}

10-05 17:59