问题描述
假设有A、B、C三个tab,点击tab就请求(GET请求)对应的数据,数据存在同一个地方。如果快速切换tab,会发出多个请求,很容易出现最后一个请求完成的数据与选中的tab不对应的情况。
See the Pen 快速点击,数据错乱 by ly023 (@ly023) on CodePen.
方案1:只保存最后一次请求的数据
仅以点击的最后一个tab为准,不终止请求,只保存最后一次请求的数据。
lastRequestId
保存发出请求的总次数,requestId
记下当前是第几次请求,在更新数据之前检查requestId
是否为最后一次请求(是否等于请求总次数lastRequestId
),是就更新数据:
1 | const lastRequestId = React.useRef(0); |