如何刷新反应导航标题-多语言问题

时间:2019-05-15 10:17:49

标签: react-native react-navigation

我正在尝试使用“ 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

有什么建议吗?

谢谢

1 个答案:

答案 0 :(得分:0)

启动应用程序时,将设置在声明路由器时定义的路由和navigationOptions。因此,当语言道具更新时,它们不会改变。您可以做的是在屏幕组件的内部{strong>内部添加static navigationOptions并在其中定义标题。

例如。

static navigationOptions = {
     title: this.props.language : "en"? "English title": "Other language title",
};