我正在构建一个反应式原生应用,我正在使用反应式导航包。我为应用程序设计了一个标签导航器,每个标签都有一个堆栈导航器。就像这样。
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屏幕上。然后我按home标签回到主屏幕。现在,当我回到搜索标签时,它显示我的SearchResult屏幕。有什么方法可以强制 react-navigation 在你从 Tab 进入搜索界面的时候总是显示搜索界面?
我在snack上做了一个项目来说明这个问题。https:/snack.expo.iorkMzWoh17
在搜索栈导航中使用初始路径名,就像这样。
{
initialRouteName: 'Search',
}
你可以在每个堆栈界面里面使用这样的东西。
const Search = ({ navigation }) => {
useLayoutEffect(() => {
const blur = navigation.addListener('blur', () => {
navigation.popToTop();
});
}, []);
}
这将在你每次导航离开时把堆栈弹到初始屏幕。