两种场景,
一种是组件内比如说一个input,点击了button A,ajax请求,然后改变input内的内容,但是在A的ajax请求还没结束时,就点击了button B,也发送了一个ajax请求,这时候input的内容可能就会有异常。
第二种场景,就是组件切换的时候,初始化ajax一般是写在componentDidMount中,这个时候如果ajax请求还没结束,就切换到了另一个组件中,上一次的ajax请求并不会结束。
第一种场景可能可以通过一些function的限定解决问题,那么第二种呢?是否有什么比较通用的方法能取消上一次的ajax请求?
不知道你是通过哪里使用的
ajax
。如果是直接在组件里面使用的
ajax
:第一种情况的时候,发送第二个
ajax
之前,使用abort
方法停止上一次的ajax
就好。第二种情况,就在
componentWillUnmount
方法里面,用abort
停止所有的ajax
。如果是在
Redux
里面使用的ajax
,我没有想法。。。感觉要用middleware
来解决,但是想不通怎么做。。。