采取以下方案来解决:
-
取消之前的请求:在切换到新的 Tab 之前,首先检查是否有之前的请求正在进行中。如果是,可以使用取消请求的机制中止之前的请求,以确保不会更新当前 Tab 的数据。你可以使用类似 Axios 提供的 cancel token 来取消请求。
-
防止并发请求:为了避免并发请求导致数据不正确,你可以在发起新请求之前添加一个标记来检查是否已有请求正在进行中。如果有,则不发起新请求,或者等待之前的请求完成后再发起新请求。
-
缓存请求结果:你可以在切换 Tab 时,将已获取的数据缓存起来,以避免重复请求相同的数据。当切换回之前已经获取过的 Tab 时,直接从缓存中获取数据进行展示,而不发起新的请求。
-
展示加载状态或占位内容:在切换 Tab 时,可以展示一个加载状态或占位内容,以提示用户数据正在加载中。这样即使数据展示不正确,用户也能知道数据正在获取,并保持良好的用户体验。
-
优化异步请求逻辑:在处理异步请求时,可考虑优化逻辑,确保数据的一致性。例如,可以使用 Promise 或 async/await 来管理异步流程,避免回调地狱和不可控的并发请求。