gpt4 book ai didi

react-native - 从抽屉中重置 react 导航堆栈

转载 作者:行者123 更新时间:2023-12-03 14:14:46 25 4
gpt4 key购买 nike

官方开了很多问题react-navigation github:https://github.com/react-community/react-navigation/issues但是没有人给出真正的解决方案,包括一篇帖子说“看看这个问题,很多问题”:https://github.com/react-community/react-navigation/issues/691没有答案。
基本上:我有一个 DrawerNavigator带有一些嵌套 StackNavigator .

export const MainNavigator = DrawerNavigator(
{
OrderNew: {
screen: OrderNew,
navigationOptions: {
drawerLabel: DrawerLabel('New Order')
}
},
Orders: {
screen: OrderNavigator, //a StackNavigator
navigationOptions: {
drawerLabel: DrawerLabel('Orders')
}
},
MenuNavigator: {
screen: MenuNavigator, //a StackNavigator
navigationOptions: {
drawerLabel: DrawerLabel('Menu')
}
},
//more screens...
{
initialRouteName: 'Orders',
drawerPosition: 'right',
contentComponent: props => <ScrollView style={{backgroundColor: 'rgba(227, 100, 29, .95)'}}><DrawerMenu state={props} /></ScrollView>,
}
);
所以,我正在传递一个 contentComponent使用我自己的菜单组件。我的想法是覆盖 onItemPress DrawerItems的事件组件并将我的逻辑放在这里。
我想要的是:我想重置 MenuNavigator (和其他堆栈屏幕)每次用户按下该项目时。我就是做不到这一点。正如我所说,我尝试了很多代码。实际上,它是这样的:
onItemPress={
router => {
const navigateAction = NavigationActions.navigate({
routeName: router.route.routeName,
});

this.props.state.navigation.dispatch(navigateAction);
}
}
上面的代码有效,我可以浏览抽屉项目。现在,在我的脑海中,我应该将一个子操作重置传递给导航器上的第一项。所以我试过:
onItemPress={
router => {
const navigateAction = NavigationActions.navigate({
routeName: router.route.routeName,
action: NavigationActions.reset({
index: 0,
actions: [
NavigationActions.navigate({routeName: router.route.routes[0].routeName}),
]
})
});

this.props.state.navigation.dispatch(navigateAction);
}
}
并爆出错误:

There is no route defined for key Menu.Must be one of: 'Orders','OrderClient'


总结:我怎么能重置 StackNavigator当我导航到另一个 DrawerNavigator的项目?

最佳答案

您缺少键:空。

导航操作应该是这样的。

 action: NavigationActions.reset({
index: 0,
key: null,
actions: [
NavigationActions.navigate({routeName: router.route.routes[0].routeName}),
]
})

关于react-native - 从抽屉中重置 react 导航堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45512060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com