首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在react本机的堆栈导航器中找不到键的路由

在react本机的堆栈导航器中找不到键的路由
EN

Stack Overflow用户
提问于 2019-05-23 00:42:47
回答 1查看 135关注 0票数 0

我正在做一个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.

我被困在这种情况下。请帮我解决这个问题。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-05-23 01:35:21

问题似乎是您的代码试图导航根导航器(SplashEnterOp都是此导航器上的键)。根据docs的说法

键-字符串或null -可选-如果设置,将重置具有给定键的导航器。如果为空,则根导航器将重置。

因此,也许您可以尝试将key参数添加到reset操作中:

const resetAction = StackActions.reset({
  index: 0,
  actions: [NavigationActions.navigate({ routeName: 'Buy' })],
  key: 'BuyStar',
});

以下是一些可能会有所帮助的更多资源:

SO answer

Github Issue

请注意,实现可能取决于您使用的是React导航3.0+还是更早的版本。

编辑

提供的键应该是BuyStar -您正在尝试导航到存在于StarStack导航器中的路由BuyStarStack导航器位于抽屉导航器中,因此可以在其键中找到此导航器的键:

const modeldrawerNavigator = createDrawerNavigator({
  ...
  BuyStar : { screen: StarStack },
  ...

关键字应该是包含您试图导航到的路线的导航器的id。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56261518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档