如何重置嵌套在DrawerNavigatior中的StackNavigator的状态?

Arn*_*aud 7 react-native react-navigation

我正在构建一个应用程序,其导航基于react-navigation库中的DrawerNavigator.

这个导航器有3个标签:

  • 2个常规标签
  • 1 StackNavigator命名为"搜索"

StackNavigator包含一个允许用户搜索项目的屏幕,以及一个用户可以看到搜索结果的第二个屏幕.

我不希望搜索结果页面成为DrawerNavigator的选项卡,这就是我实现此结构的原因.

问题是:如果用户已经执行了搜索,当他点击"搜索"选项卡时,他不会返回搜索屏幕而是返回搜索结果屏幕.我希望用户回到搜索屏幕.

我怎样才能做到这一点?

Tar*_*mud 2

您可以使用带有 navigationActions 的导航调度来实现此目的

import { NavigationActions } from 'react-navigation';

const resetAction = NavigationActions.reset({
  index: 0,
  actions: [
    NavigationActions.navigate({
      routeName: 'DrawerScreen',
      params: {},
      action: NavigationActions.navigate({ routeName: 'SearchScreen' }),
    }),
  ],
})
navigation.dispatch(resetAction)
Run Code Online (Sandbox Code Playgroud)