在React Native App中将用户更改为用户首选
问题描述:
我正在使用React Native创建应用程序,需要能够随时更改应用程序的语言。我在这里跟着样品:https://github.com/appfoundry/react-native-multi-language-sample。在此之后,我已成功设置Redux和所有附带的库。在React Native App中将用户更改为用户首选
我遇到的问题是,我试图从一个警报弹出框中触发我的操作,而不是一个选择器,而且我遇到了实际调度操作的问题。
如果任何人都可以告诉我如何使用一个非常棒的Alert来更改用户语言。
谢谢!
答
我一直在努力的想法可能会帮助你。
我用react-native-i18n
(https://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;
}
希望它可以帮助