我已经将 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的新手 . 如果我能提供更多信息来帮助说明我遇到的问题,请告诉我 .