我已经将 navigationOptions
拆分到每个屏幕的顶部以使事情易于理解,而不是将其保留在TabNavigator中 . 这是一个屏幕的示例:
static navigationOptions = ({navigation}) => {
const {params = {}} = navigation.state;
return {
title: params.title != undefined ? `${params.title}` : "Step 1: Select a Letter",
tabBarOnPress: ({...props, scene})=>{
params.onFocus();
},
titleStyle: {
textAlign: 'center'
}
}
};
一旦用户在此屏幕上选择了一个字母,我就切换视图以显示不同的组件(例如,以该字母开头的项目列表) .
我想改变TabNavigator Headers 的 Headers ,现在显示类似"Step 2: Select an item from the list"的内容 . 我在thread上看到你可以从重建视图的方法中调用一个方法,如下所示:
_letterSelectedHandler = (letter) => {
this._changeTitle("Step 2: Select an item...");
...
}
用方法:
_changeTitle = (title) => {
this.props.navigation.setParams({title});
}
不幸的是,它似乎创造了一个无限循环 . 有没有更好的方法来简单地更改TabNavigator Headers Headers ?
我应该提一下,我不使用Redux或任何太复杂的东西,因为我是React Native的新手 . 如果我能提供更多信息来帮助说明我遇到的问题,请告诉我 .