免责声明:我知道这个答案已被提出,但在我的情况下,我需要一个特定案例的解决方案,其他问题/答案并未真正涵盖。
在我的react-native应用程序中,我做了很多网络请求,可能需要很长时间才能完成。每个请求都以两种主要方式处理:
400
错误,等等。在这种情况下,必须以消息的形式向用户显示消息,该消息显示在屏幕上或作为警报。我的问题是,当卸载一个组件时,无论如何在请求完成时都会处理提取回调。在第一种情况下,这不是问题:商店已成功更新,每个人都很高兴。
但在第二种情况下,这是一个问题,因为:
Modal
组件出现问题。这里有什么可能的解决方案?最简单的一个是在每个组件中使用_isMounted
属性,并且在每个fetch错误处理程序中,如果_isMounted == false
不执行任何操作。但是,这种方法很冗长,也是反模式。
我还有其他选择吗?
如果您正在使用react-navigation
,我相信您可以在操作中扣除状态而不是调用警报。
我的建议是你将导航道具传递给动作方法,并在那里扣除导航状态并根据需要调用警报。