React本机redux导航状态在崩溃后重置



我们正在使用redux导航和持久化redux状态。然而,有时当用户导航到页面并发生意外错误时,应用程序会出现白色屏幕崩溃。如果应用程序再次启动,它显然会再次崩溃,因为加载了相同的状态。结果应用程序变得不可用——应用程序启动后,白色屏幕立即崩溃。

我想,如果其中一个屏幕上有错误,让应用程序崩溃是可以的,但因为一个屏幕有错误,我不想让整个应用程序对用户不可用,以某种方式重置状态并让用户继续使用应用程序的其他功能会很好。

关于如何实现这一点,有什么想法吗?

我认为真正的问题是:你想保持导航状态吗?你真的想在应用程序启动时加载上次访问的屏幕而不是应用程序的第一个屏幕吗?我从来没有见过一个应用程序可以进行这种

另一个问题是如何在redux中保持导航状态。这只是使用旧版本的react导航时的一种模式(如果我没有记错的话,是v1和v2(,但即使在那时,它也不是保持导航状态为redux的最佳模式(react导航的redux集成v1(,更不用说在重新启动时保持它了。每次用户启动应用时,导航都应该重新开始

另请阅读当前版本中的状态持久性(v5-https://reactnavigation.org/docs/state-persistence)通常在所有中都不涉及冗余

关于状态持久性:通常只持久化长寿的东西,如身份验证状态、授权令牌、用户设置,但不持久化一些经常被丢弃的动态数据。例如,如果您打开某个页面并获取要在该页面上显示的数据,则没有理由将该数据保留在AsyncStorage中,因为您为什么要这样做?应该在每次打开页面时重新加载此数据,而不是从持久状态恢复。Redux-persistent允许您将状态的不同部分列入白名单或黑名单

总结如下:1.弄清楚是否需要保持导航状态。如果没有,问题已解决2.如果你这样做了,试着设置redux-persistent,使其不会持久化短期内易出错的数据3.弄清楚导航状态是如何持久化的(通过redux或它自己,请参阅我之前提供的链接中的示例(4.集成react本机异常处理程序,在崩溃的情况下捕获异常并重置持久导航状态

最新更新