最好取消所有不再需要的挂起请求,例如,如果依赖于请求的组件在请求完成之前就已卸载。
如果您直接在React组件生命周期方法中发起请求,则可以在组件实例上保留对该请求的引用。
在React应用程序中使用Redux时,该请求可能会在Redux动作创建者内部发起(可能使用redux-thunk
之类的中间件)。
在那种情况下,哪里是存储对XMLHttpRequest
对象(或Observable
等)的引用的最佳位置,以便在卸载发起请求的组件时可以将其取消?
我可以想到几种选择,我不确定哪一种是最好的:
Map
中(或者最好是WeakMap
,以避免内存泄漏),该键可以使用组件可以引用的键存储在Redux存储中,也可以在操作中返回并存储在组件。