React Native 导航致命异常:在视图已被销毁后尝试创建视图

Har*_*ora 5 react-native react-native-navigation

问题描述::

我正在开发 React Native 应用程序,并使用 React Native Navigation 进行路由,GitHub 链接

有时我的应用程序会在 Android 上崩溃,因为我安装了 crashlytics,所以我使用 Firebase 崩溃日志验证了崩溃。我在 crashlytics:: 中收到此错误日志

致命异常:java.lang.RuntimeException:尝试在 com.reactnativenavigation.viewcontrollers.ViewController.getView(ViewController.java:161) 处销毁视图后创建视图 com.reactnativenavigation.viewcontrollers.ParentController.getView(ParentController.java :60) 在 com.reactnativenavigation.viewcontrollers.stack.StackController.lambda$push$4(StackController.java:172) 在 com.reactnativenavigation.viewcontrollers.stack.-$$Lambda$StackController$06hFigyLWXXMellTVVP0d0y7blk.run (未知来源:8)在 com.reactnativenavigation.anim.NavigationAnimator$1.onAnimationEnd(NavigationAnimator.java:64) 在 android.animation.Animator$AnimatorListener.onAnimationEnd(Animator.java:552) 在 android.animation.AnimatorSet.endAnimation(AnimatorSet.java:1294)在 android.animation.AnimatorSet.doAnimationFrame(AnimatorSet.java:1079) 在 android.animation.AnimationHandler.doAnimationFrame(AnimationHandler.java:146) 在 android.animation.AnimationHandler.access$100(AnimationHandler.java:37) 在 android.animation .AnimationHandler$1.doFrame(AnimationHandler.java:54) 在 android.view.Choreographer$CallbackRecord.run(Choreographer.java:1170) 在 android.view.Choreographer.doCallbacks(Choreographer.java:984) 在 android.view.Choreographer .doFrame(Choreographer.java:806) 在 android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1158) 在 android.os.Handler.handleCallback(Handler.java:873) 在 android.os.Handler.dispatchMessage( Handler.java:99) 在 android.os.Looper.loop(Looper.java:193) 在 android.app.ActivityThread.main(ActivityThread.java:6863) 在 java.lang.reflect.Method.invoke(Method.java) )在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

这仅发生在 Android 应用程序内部。我无法再次重现这种情况,有时它会自动发生。大多数情况下,当子屏幕覆盖父屏幕时会发生这种情况。

代码::

Navigation.push(this.props.componentId, {
                component: {
                    id: screenId,
                    name: screenName,
                    passProps: props,
                    options: options
                }
            });

Navigation.popToRoot(this.props.componentId);
Run Code Online (Sandbox Code Playgroud)

我在用 ::

  • 反应本机版本::0.58.6
  • 反应本机导航 :: 2.12.0

guy*_*.gc 0

我相信这已由2.13.1-snapshot.234# 47b7d2c解决