Javascript 让堆栈导航器始终呈现initialRoute
我正在构建一个react本机应用程序,并使用react导航包。我有一个用于应用程序的选项卡导航器,每个选项卡中都有一个堆栈导航器。大概是这样的: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:
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();
});
}, []);
}
每次导航离开时,都会将堆栈弹出到初始屏幕
这里有更多信息:我的代码中确实有,但它只适用于初始渲染。一旦我在堆栈中导航,它会将该屏幕存储在历史记录中,并在我转到选项卡时进行渲染。可能会弹出搜索堆栈中的所有屏幕,然后导航到主屏幕。因此,当您导航回堆栈时,它将在初始屏幕上启动。