React native 屏幕组件中的导航选项不工作
如果我在StackNavigator内的屏幕组件中设置导航选项,以更改抽屉导航器内堆栈的标题,则不考虑导航选项。但是,我可以通过考虑的默认导航选项。如果我没有通过defaultNavigationOptions它不会改变行为。这是使用react navigation V4.x的 在这里,我为我的抽屉创建堆栈导航器屏幕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 =
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}
导航选项已被考虑在内。但是我不能这样传递道具