在React Native App中将用户更改为用户首选

问题描述:

我正在使用React Native创建应用程序,需要能够随时更改应用程序的语言。我在这里跟着样品:https://github.com/appfoundry/react-native-multi-language-sample。在此之后,我已成功设置Redux和所有附带的库。在React Native App中将用户更改为用户首选

我遇到的问题是,我试图从一个警报弹出框中触发我的操作,而不是一个选择器,而且我遇到了实际调度操作的问题。

如果任何人都可以告诉我如何使用一个非常棒的Alert来更改用户语言。

谢谢!

我一直在努力的想法可能会帮助你。

我用react-native-i18nhttps://github.com/AlexanderZaytsev/react-native-i18n)创建了一个包含我所有翻译的文件。事情是这样的:

I18n.translations = { 
    en: { 
    helloWorld: 'Hello World!', 
    loginButton: 'Login', 
    } 
} 

于是我进口它在我的组件,它包含应该被翻译和使用这样的文字:

<View> 
    <Text>{I18n.t('helloWorld'}</Text> 
</View> 

我已经保存在我的数据库,我的用户语言当用户在我的应用程序中登录时获取它并设置在我的reducer中。起初我从I18n.currentLocale()方法得到languge。

在我的部分,我从我的减速器得到了用户的语言,并将其设置的I18n上配置: I18n.locale = this.props.language;

在这部分我有一个选择器,以便用户可以选择自己的语言。我触发一个动作来更新我的数据库,以及减速器和使用componentWillReceiveProps()生命周期来更新I18n.locale

componentWillReceiveProps(nextProps) { 
    I18n.locale = nextProps.language; 
    } 

希望它可以帮助