React Navigation:连续调用 `navigation.popToTop()` 和 `navigation.navigate('route')` 是否安全?

问题描述 投票:0回答:1

我们有一个应用程序经常需要在不同导航器的屏幕之间导航。在某些情况下,我们需要从堆栈导航器中的屏幕导航到不同的导航器。在此过程中,我们需要确保我们要离开的堆栈重置为其初始屏幕(popToTop)。我们用这样的代码来实现这一点:

const onExit = () => {
    navigation.popToTop();
    navigation.navigate('routeName');
}

这段代码可以工作,但是它被认为是安全的吗?组件是否有可能在调用

navigation.navigate('routeName')
之前卸载,或者 React Navigation 在屏幕卸载之前以某种方式“排队”导航操作?

这段代码似乎总是有效,但它被认为是一个好的做法吗?为什么或为什么不?

react-native react-navigation
1个回答
0
投票

而是使用 InteractionManager,这会延迟导航,直到堆栈重置。

const onExit = () => {
  navigation.popToTop();
  InteractionManager.runAfterInteractions(() => {
     navigation.navigate('routeName');
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.