【发布时间】:2020-01-13 03:00:05
【问题描述】:
问题:我有一个触发 axios 请求的 React 应用程序,您可以通过单击按钮一一取消它们。现在我又创建了一个按钮,应该一次取消所有请求,但我不知道该怎么做,因为我已经在单独取消的请求中有cancelToken 配置。
问题:如何通过单击按钮取消我的代码示例中的所有三个请求?
代码示例:
组件包装器.jsx:
const CancelToken = axios.CancelToken;
<RequestComponent cancelToken={CancelToken}>
<RequestComponent cancelToken={CancelToken}>
<RequestComponent cancelToken={CancelToken}>
<button onClick={/* Something here */}>Cancel all requests</button>
组件请求组件.jsx:
let cancel;
// new axios request
axios.get('/user/12345', {
cancelToken: new this.props.CancelToken(function executor(c) {
cancel = c;
})
});
// cancel this one particular request
<button onClick={cancel('Request canceled')}>Cancel this one request</button>
我阅读了axios documentation,但仍然无法弄清楚。
【问题讨论】:
-
您需要在组件层次结构中向上移动请求,以便您可以从其
RequestComponents 之外访问它们。
标签: javascript reactjs axios