让堆栈导航器始终呈现initialRoute

时间:2018-05-30 22:12:34

标签: javascript react-native react-navigation tabnavigator

我正在建立一个反应原生应用程序,我正在使用react-navigation包。我有一个应用程序的标签导航器,每个标签都有一个堆栈导航器。像这样:

const HomeStack = StackNavigation({
    Info: {screen: Info},
    Main: {screen: Main}
})

const SearchStack = StackNavigation({
    Search: {screen: Search},
    SearchResult: {screen: SearchResult}
})

TabNavigation({
  Home: {screen: HomeStack},
  Search: {screen: SearchStack}
})

所以,让我说我做了一次搜索,现在我在SearchResult屏幕上。然后按主页选项卡返回主屏幕。现在,当我返回搜索选项卡时,它会向我显示SearchResult屏幕。有没有办法强制反应导航在从标签页面转到它时始终呈现搜索屏幕?

我制作了一个关于小吃的项目来说明这个https://snack.expo.io/rkMzWoh17

2 个答案:

答案 0 :(得分:1)

在像这样的搜索堆栈导航中使用这样的初始路由名称

 {
    initialRouteName: 'Search',
  }

答案 1 :(得分:0)

您可以在每个堆栈屏幕中使用类似的内容。

   const Search = ({ navigation }) => {
      useLayoutEffect(() => {
          const blur = navigation.addListener('blur', () => {
            navigation.popToTop();
          });
      }, []);
   }

每次您离开时,这都会将堆栈弹出到初始屏幕。

此处提供更多信息:https://reactnavigation.org/docs/navigation-events