我正在尝试使用“ i18n-js”将多语言集成到我的React Native应用程序中:“ ^ 3.2.1” 我想在更改i18n的语言环境后从react-navigation更新标题。
更改语言环境后,我将运行this.forceUpdate();。 重新加载页面。
switchSettings = (field_name, value) => {
console.log(field_name);
switch (field_name) {
case "languages":
setLanguage(value[0])
this.forceUpdate();
break;
default:
break;
}
}
这对我的自定义组件很好,但是,这并没有更新我的react导航标题title / back-button:\
react-navigation是否有可用的功能来重新渲染标题或重新评估navigationOptions?
非常感谢您的帮助。 谢谢
EDIT1:
static navigationOptions = ({ navigation }) => {
return {
headerTitle: i18n.t('title')
}
};
当我转到下一页时,上面的方法工作正常,但是如果返回,则不会重新评估navigationOptions
有什么建议吗?
谢谢
答案 0 :(得分:0)
启动应用程序时,将设置在声明路由器时定义的路由和navigationOptions
。因此,当语言道具更新时,它们不会改变。您可以做的是在屏幕组件的内部{strong>内部添加static navigationOptions
并在其中定义标题。
例如。
static navigationOptions = {
title: this.props.language : "en"? "English title": "Other language title",
};