javascript - axios 取消的请求无法重新启动

标签 javascript reactjs axios

当组件如下卸载时,我正在取消 axios 请求

const CancelToken = axios.CancelToken
const source = CancelToken.source()

componentWillUnmount () {
 source.cancel('message')
}

当组件被卸载时,后台发生的网络请求被标记为“停滞”。问题是当用户再次访问该组件时,应该在 componentDidMount 中发生的网络请求不会启动。

最佳答案

axios#cancellation描述了两种使用 cancelToken 的方法。您使用了第一种方式,使用 source.token/source.cancel。我就是这样开始的,并且遇到了与您类似的问题:一旦取消了对特定 URL 的请求,我就再也无法从该 URL 获得成功的响应。我使用执行程序函数切换到第二种方法,问题就消失了。我猜是为多个请求共享相同的 cancelToken,这就是他们所说的您可以使用执行程序函数方法执行的操作。不管怎样,也许这对你也有用。

关于javascript - axios 取消的请求无法重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53475045/

相关文章:

javascript - React 中的 Import() - 在 Chrome/Firefox 扩展中引发错误

mongodb - React - 如何在将数据发布到数据库(mongodb)后重新渲染组件

reactjs - Axios get in url 有效,但第二个参数作为对象则无效

java - 如何获取包含 HtmlUnit 错误的网页?

javascript - 遍历子节点的 DOM 子节点

javascript - 向同级 div 添加内容

javascript - React - (嵌套) Prop 类型无效;它必须是一个函数

javascript - 根据名称渲染 React 组件

ecmascript-6 - 如何使用axios序列化参数

Javascript 异步状态更新