语言:React
业务场景:有一张表格,表格里一行数据代表将要发起一次请求。打个比方有 10 条数据,现在要异步同时发起这 10 个请求,每个请求完成后更新表格中对应数据的 loading 状态,success 状态和 fail 状态。
当前的写法:
表格数据是 data,stack[]中有 10 个请求参数,stack.map(params=>request(params) ;
request 函数: (params) => {
const temp = [...data];
const index = temp.findIndex(row =>
row.id ===
params.id);
temp.splice(index,1,{...temp[index],...{status:'loading'}});
setData(temp);
axios(params).then( // 利用 splice 同样将 status 改成 success 然后 setData ) }))
问题点:表格视图上状态不能成功更新,每次状态更新都会覆盖上一次的数据,导致表格里 10 条数据执行到哪个哪个状态就是成功,会把其他数据的状态给还原成空
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/748952
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.