使用React和Redux时,应该将XMLHttpRequest对象存储在哪里才能取消它?

时间:2019-03-06 21:36:58

标签: javascript reactjs redux react-redux

最好取消所有不再需要的挂起请求,例如,如果依赖于请求的组件在请求完成之前就已卸载。

如果您直接在React组件生命周期方法中发起请求,则可以在组件实例上保留对该请求的引用。

在React应用程序中使用Redux时,该请求可能会在Redux动作创建者内部发起(可能使用redux-thunk之类的中间件)。

在那种情况下,哪里是存储对XMLHttpRequest对象(或Observable等)的引用的最佳位置,以便在卸载发起请求的组件时可以将其取消?

我可以想到几种选择,我不确定哪一种是最好的:

  1. 直接在Redux存储中(通常为not recommended
  2. 在全局Map中(或者最好是WeakMap,以避免内存泄漏),该键可以使用组件可以引用的键存储在Redux存储中,也可以在操作中返回并存储在组件。
  3. 请求对象本身在操作中返回并存储在组件中。
  4. 其他?

0 个答案:

没有答案