“导航/重置”操作未由任何导航处理

问题描述 投票:0回答:1

我遇到了一个错误。当我尝试重置屏幕导航堆栈时,出现此错误

The action 'Navigation/RESET' was not handled by any navigation

我重置导航的代码是:

 let resetAction = StackActions.reset({
       key: null,
       index: 0,
       actions: [
         NavigationActions.navigate({ routeName: 'ScreenName' })
       ]
    })
 this.props.navigation.dispatch(resetAction)

如果您能提出任何解决方案,我们将非常感激。

react-native react-redux react-navigation
1个回答
9
投票

在 5.x 版本中,重置导航的方式发生了变化。你可以使用:

import { StackActions } from '@react-navigation/native';
this.props.navigation.dispatch(
  StackActions.popToTop()
);

从堆栈中弹出所有页面重定向,然后返回到第一个屏幕。 (在展会上查看)

或者您可以使用:

import { CommonActions } from '@react-navigation/native';

navigation.dispatch(
  CommonActions.reset({
    index: 1,
    routes: [
      { name: 'Home' },
      {
        name: 'Profile',
        params: { user: 'jane' },
      },
      ...
    ],
  })
);

将您的导航状态重置为初始状态。

这里有一个零食博览会的现场演示(使用android选项卡,从主页转到

details
页面,然后
page 3
,然后按重置。你可以看到它现在在主页上,如果你按返回,它会退出。)(
popToTop
的代码位于第 44 行)

文档:弹出到顶部操作重置操作

Ps: 如果你没有使用 5.x 版本,首先确保你有一个名为

ScreenName
的路由(因为你使用的是 :
routeName: 'ScreenName'
,如果它没有修复它,请尝试其他代码来重置,例如:这里

© www.soinside.com 2019 - 2024. All rights reserved.