构建一个React Native应用程序,我希望根据初始选择屏幕的状态将用户发送到下一个屏幕。因此,如果选择了1个项目,则应将用户带到Single屏幕。如果选择了多个项目,则应将用户带到Multiple屏幕。
正如您所看到的,我制作了自定义headerLeft和headerRight组件。我更喜欢保持路由方式,但不知何故要将初始状态添加到此上下文中。有没有办法?
如果我可以将导航选项与routes.js文件分离并将其放入屏幕组件本身中,那就太棒了。但是从我所研究的内容来看,似乎navigationOptions无法直接访问状态。
以下是相关代码(routes.js):
正如您所看到的,我制作了自定义headerLeft和headerRight组件。我更喜欢保持路由方式,但不知何故要将初始状态添加到此上下文中。有没有办法?
如果我可以将导航选项与routes.js文件分离并将其放入屏幕组件本身中,那就太棒了。但是从我所研究的内容来看,似乎navigationOptions无法直接访问状态。
以下是相关代码(routes.js):
export default StackNavigator(
{
Select: {
screen: Select,
navigationOptions: ({ navigation }) => ({
headerLeft: <View />,
headerRight: (
<HeaderRight
navigation={navigation}
destination=""
showIcon
/>
)
})
},
Single: {
screen: Single,
navigationOptions: ({ navigation }) => ({
headerLeft: (
<HeaderLeft navigation={navigation} destination="back" showIcon />
),
headerRight: (
<HeaderRight navigation={navigation} destination="SingleSecond" />
)
})
},
Multiple: {
screen: Multiple,
navigationOptions: ({ navigation }) => ({
headerLeft: <HeaderLeft navigation={navigation} destination="back" />,
headerRight: (
<HeaderRight navigation={navigation} destination="MultipleSecond" />
)
})
},
},
{
headerMode: "float",
navigationOptions: ({ navigation }) => ({
title: `${navigation.state.routeName}`,
headerStyle: { backgroundColor: "#000" },
headerTitleStyle: {
color: "#fff",
textAlign: "center",
alignSelf: "center"
}
})
}
);