React native 屏幕组件中的导航选项不工作

React native 屏幕组件中的导航选项不工作,react-native,react-navigation,react-navigation-stack,react-navigation-drawer,React Native,React Navigation,React Navigation Stack,React Navigation Drawer,如果我在StackNavigator内的屏幕组件中设置导航选项,以更改抽屉导航器内堆栈的标题,则不考虑导航选项。但是,我可以通过考虑的默认导航选项。如果我没有通过defaultNavigationOptions它不会改变行为。这是使用react navigation V4.x的 在这里,我为我的抽屉创建堆栈导航器屏幕 drawerNavigator = () => { let drawerRoutes = {} this.state.routes.forEach(r =

如果我在StackNavigator内的屏幕组件中设置导航选项,以更改抽屉导航器内堆栈的标题,则不考虑导航选项。但是,我可以通过考虑的默认导航选项。如果我没有通过defaultNavigationOptions它不会改变行为。这是使用react navigation V4.x的

在这里,我为我的抽屉创建堆栈导航器屏幕

  drawerNavigator = () => {
    let drawerRoutes = {}
    this.state.routes.forEach(r => {
      let stackRoute = {}
      let t = () => <First name={r} />
      stackRoute[r] =  { screen : t }
      let stackOptions = {
        initialRouteName: r,
        defaultNavigationOptions: stackNavigationOptions
      }
      let s = createStackNavigator(stackRoute, stackOptions)
      drawerRoutes[r] = { screen : s }
    })

    let drawerOptions = {
      drawerWidth: '75%',
      initialRouteName: this.state.routes[0],
      contentComponent: props => <Menu {...props} />,
      contentOptions: drawerItemsOptions
    }
    return createDrawerNavigator(drawerRoutes, drawerOptions);
  }
drawerNavigator=()=>{
让drawerRoutes={}
this.state.routes.forEach(r=>{
设stackRoute={}
让t=()=>
stackRoute[r]={screen:t}
让stackOptions={
初始路由名称:r,
默认导航选项:堆栈导航选项
}
设s=createStackNavigator(stackRoute,stackOptions)
抽屉[r]={screen:s}
})
设抽屉操作={
付款人宽度:“75%”,
initialRouteName:this.state.routes[0],
contentComponent:props=>,
contentOptions:drawerItemsOptions
}
返回CreateDroperAvigator(抽屉、抽屉选项);
}
然后在我的组件中,我尝试设置堆栈的导航选项,但没有考虑它

export default class First extends Component {
  static navigationOptions = ({ navigation }) => {
    return {
      headerTitle: 'hahahaha',
      headerRight: () => (
        <Button
          onPress={() => alert('This is a button!')}
          title="Info"
          color="#fff"
        />
      ),
    }
  }

  render() {
    return (
      <SafeAreaView style={{ flex: 1, justifyContent: "center", alignItems: "center" }}>
      <StatusBar transluscent backgroundColor="transparent" barStyle="dark-content" />
        <Text>{this.props.name}</Text>
      </SafeAreaView>
    );
  }
}
导出默认类首先扩展组件{
静态导航选项=({navigation})=>{
返回{
标题:“哈哈哈”,
头灯:()=>(
警报('这是一个按钮!')}
title=“Info”
color=“#fff”
/>
),
}
}
render(){
返回(
{this.props.name}
);
}
}

好吧,我发现如果我那样通过屏幕

stackRoute[r] =  { screen : First }
而不是

let t = () => <First name={r} />
stackRoute[r] =  { screen : t }
let t=()=>
stackRoute[r]={screen:t}
导航选项已被考虑在内。但是我不能这样传递道具