我正在做一个react原生项目,它得到了一个错误,因为在堆栈中找不到路径,navigator.First的所有这是我的代码导航我的应用程序。
const RootStack = createStackNavigator({
Splash : { screen: Splash },
ModelProfile: { screen: ModelProfile},
HomeModel: {screen: modeldrawerNavigator},
EnterOtp : { screen: EnterOtp},
OtpChangePassword : { screen: OtpChangePassword},
}, {
headerMode: 'none',
initialRouteName: 'Splash'
})
const AppNavigator = createAppContainer(RootStack)
export default AppNavigator;
现在modelDrawerNavigator
的代码是
const modeldrawerNavigator = createDrawerNavigator(
{
HomeScreen: { screen: homeStack},
EditProfile : { screen: profileStack},
BuyStar : { screen: StarStack},
Notifications : { screen: nStackmodel},
ResetPassword : { screen: ResetPassword},
},
{
initialRouteName: 'HomeScreen',
gesturesEnabled: true,
contentComponent: props => <DrawerModel {...props} />
},
);
StarStack
的代码是
const StarStack = createStackNavigator({
Buy : { screen: BuyStars},
PaymentMode : { screen: PaymentMode},
}, {
headerMode: 'none',
initialRouteName: 'Buy'
});
现在,当在抽屉中导航时,我想要将栈清空到位置0。
<TouchableOpacity
onPress={() => {
this.props.navigation.navigate('BuyStar');
const resetAction = StackActions.reset({
index: 0,
actions: [NavigationActions.navigate({ routeName: 'Buy' })],
});
this.props.navigation.dispatch(resetAction);
}}
>
<Text style={styles.drawertext}>Buy Stars</Text>
</TouchableOpacity>
上面的代码会产生一个错误,
No route defined for key 'Buy',Must be one of 'Splash','EnterOtp' etc.
我被困在这种情况下。请帮我解决这个问题。提前谢谢。
发布于 2019-05-23 01:35:21
问题似乎是您的代码试图导航根导航器(Splash
和EnterOp
都是此导航器上的键)。根据docs的说法
键-字符串或null -可选-如果设置,将重置具有给定键的导航器。如果为空,则根导航器将重置。
因此,也许您可以尝试将key
参数添加到reset
操作中:
const resetAction = StackActions.reset({
index: 0,
actions: [NavigationActions.navigate({ routeName: 'Buy' })],
key: 'BuyStar',
});
以下是一些可能会有所帮助的更多资源:
请注意,实现可能取决于您使用的是React导航3.0+还是更早的版本。
编辑
提供的键应该是BuyStar
-您正在尝试导航到存在于StarStack
导航器中的路由Buy
。StarStack
导航器位于抽屉导航器中,因此可以在其键中找到此导航器的键:
const modeldrawerNavigator = createDrawerNavigator({
...
BuyStar : { screen: StarStack },
...
关键字应该是包含您试图导航到的路线的导航器的id。
https://stackoverflow.com/questions/56261518
复制相似问题