具有未定义参数的 NavigationContainer 上的 onStateChange

onStateChange on NavigationContainer with undefined param

我在 NavigationContainer 内使用 NavigationContainer 和 React Navigation 5。在此之前,我在 createAppContainer 内使用导航 5 中的 NavigationContainer 进行测试在导航 4 中,它工作正常。

问题是:当我的第二个NavigationContainer调用onStateChange函数时,接收到的参数未定义。此外,当使用 ref 时,getRootState 方法也 returns 未定义。我可以使用 ref 在屏幕之间导航,也可以正常调用 goBack 函数。

示例代码:

const navigationRef = React.useRef();

第二个导航:

<NavigationContainer
  independent={true}
  ref={navigationRef}
  onStateChange={navigationChanged}
>
  <BusinessNavigation />
</NavigationContainer>;

工作正常:

navigationRef.current.resetRoot({
  routes,
  index: 0
});
navigationRef.current.goBack();

问题:

navigationRef.current.getRootState(); //returns always undefined
const navigationChanged = (params: any) => {
  console.log(params); //is undefined
};

我现在正在使用侦听器,它可以很好地解决我的问题。代码示例:

navigationRef.current.addListener('state', e => {
    const state = e.data.state; //works
});