如何在React Redux应用程序中正确关闭axios请求?

时间:2018-11-26 08:26:06

标签: reactjs redux react-redux axios

具有反应 redux 应用程序,该应用程序通过 Axios 使用异步调用,一旦用户,我需要取消仍在进行的请求导航到其他页面或其他任何内容。刚开始反应时,我想到了将axios cancelToken 保持在redux状态,并在react组件的componentWillUnmount()中取消它的方法。

示例:

componentWillUnmount() {
  const (isLoading, cancelToken} = this.props;
  if (isLoading) {
    cancelToken.cancel("Abort request");
  }
}

是否有更好的模式或解决方案?

编辑: 在redux-thunk即操作

中引发了异步调用

1 个答案:

答案 0 :(得分:1)

这取决于您在哪里实现了提取。

如果将其放置在组件中,则可以使用componentWillUnmount方法触发cancel事件。

如果已将其放置在redux-saga之类的中间件中,则可以在那里创建并使用cancel令牌。

如果它在操作创建者之内,则可以尝试建议的方法here