一个困扰了我 2 天的前端问题咨询
資深大佬 : rexchen94 2
语言: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 条数据执行到哪个哪个状态就是成功,会把其他数据的状态给还原成空
大佬有話說 (10)