React完全是关于纯状态的,我的status
组件状态中有一个App
变量,用于跟踪应用当前正在做什么。为简化起见,我们假设有三种状态:Waiting for Input
,Fetching URL
和Error
。
当用户提交URL时,状态将更改为Fetching URL
并触发$.get()
请求以从中获取数据。请求成功或失败后,应用状态将分别更改为Waiting for Input
或Error
。
我的问题是,当用户提交Fetching URL
状态的其他网址时,取消之前的网址请求并使用新网址重新进入Fetching URL
状态是合理的。在React中处理这个问题最优雅的模式是什么?目前,我的解决方案是检入$.get()
请求的success()
和fail()
回调,以确保在更新状态之前当前网址没有更改。但是,这个解决方案不能扩展,因为我必须在每个异步请求的回调中包含检查。
答案 0 :(得分:0)
如果你只想进入等待'当所有提取完成时,您需要以某种方式跟踪它们。这不是一个React问题。
最简单的解决方案就是将打开的获取请求存储在某个数组中,并在完成后将其删除。当您删除它们时,请检查列表是否为空并相应地更新您的状态。