Javascript 让堆栈导航器始终呈现initialRoute

Javascript 让堆栈导航器始终呈现initialRoute,javascript,react-native,react-navigation,tabnavigator,Javascript,React Native,React Navigation,Tabnavigator,我正在构建一个react本机应用程序,并使用react导航包。我有一个用于应用程序的选项卡导航器,每个选项卡中都有一个堆栈导航器。大概是这样的: const HomeStack = StackNavigation({ Info: {screen: Info}, Main: {screen: Main} }) const SearchStack = StackNavigation({ Search: {screen: Search}, SearchResult:

我正在构建一个react本机应用程序,并使用react导航包。我有一个用于应用程序的选项卡导航器,每个选项卡中都有一个堆栈导航器。大概是这样的:

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}
})
假设我做了一次搜索,现在我在搜索结果屏幕上。然后按Home tab返回主屏幕。现在,当我回到搜索选项卡时,它会显示SearchResult屏幕。是否有一种方法可以强制react navigation在从选项卡转到搜索屏幕时始终呈现该屏幕


我在Snapshot上做了一个项目来说明这一点

在searchstack导航中使用这样的初始路径名

 {
    initialRouteName: 'Search',
  }

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

   const Search = ({ navigation }) => {
      useLayoutEffect(() => {
          const blur = navigation.addListener('blur', () => {
            navigation.popToTop();
          });
      }, []);
   }
每次导航离开时,都会将堆栈弹出到初始屏幕


这里有更多信息:

我的代码中确实有,但它只适用于初始渲染。一旦我在堆栈中导航,它会将该屏幕存储在历史记录中,并在我转到选项卡时进行渲染。可能会弹出搜索堆栈中的所有屏幕,然后导航到主屏幕。因此,当您导航回堆栈时,它将在初始屏幕上启动。