我们有一个应用程序经常需要在不同导航器的屏幕之间导航。在某些情况下,我们需要从堆栈导航器中的屏幕导航到不同的导航器。在此过程中,我们需要确保我们要离开的堆栈重置为其初始屏幕(popToTop)。我们用这样的代码来实现这一点:
const onExit = () => {
navigation.popToTop();
navigation.navigate('routeName');
}
这段代码可以工作,但是它被认为是安全的吗?组件是否有可能在调用
navigation.navigate('routeName')
之前卸载,或者 React Navigation 在屏幕卸载之前以某种方式“排队”导航操作?
这段代码似乎总是有效,但它被认为是一个好的做法吗?为什么或为什么不?
而是使用 InteractionManager,这会延迟导航,直到堆栈重置。
const onExit = () => {
navigation.popToTop();
InteractionManager.runAfterInteractions(() => {
navigation.navigate('routeName');
}
}