在更改反应导航参数时防止导航

时间:2017-07-26 11:29:49

标签: react-native localization redux react-navigation

我有tabnavigator,其中包含嵌套的stacknavigators,当我更改其中一个tabnavigators屏幕params时,它会导航到该选项卡(更改发生在componentWillReceiveProps中,使用redux值告诉它更新)。有什么方法可以防止这种行为吗?如果没有,那么当我改变反应本地化本地化语言时,你会如何建议更新标题?

Image of unwanted navigation behaviour

setLanguage (language) {
    AsyncStorage.setItem('@Language', language)
        .then(() => {
            Localization.setLanguage(language)
            this.props.setLocalization(Localization)
        })
    }  

setLocalization: (localization) => dispatch(SettingsActions.setLocalization(localization))

在导航到的组件上,但我不希望它导航到

static navigationOptions = () => {
    return {
        title: Localization.events_2
    }
}

componentWillReceiveProps (nextProps) {
    if (nextProps.localization && nextProps.localization.language !==
    this.props.localization.language) {
        const {setParams} = this.props.navigation
        setParams({ title: nextProps.localization.events_2 })
    }
}

1 个答案:

答案 0 :(得分:0)

我通过在用户导航到选项卡时更改参数来修复行为,而不是在更改语言时。