react set函数修改二维数组状态问题?-灵析社区

北北che

react set函数修改二维数组状态问题 const [rangIds,setRangIds]= useState([] as any[]) const rangChange = (values:any,indA:number,indB:number)=>{ console.log(values) console.log(rangIds) let arr = [...rangIds] arr[ind]=[...values] console.log(arr) setRangIds([...arrs]) console.log(rangIds) } 一直到arr都是符合预期的,但是setRangIds执行后,每次打印rangIds都没有变化

阅读量:27

点赞量:0

问AI
在 React 中使用 useState 时,调用状态更新函数 setXxx 并不会立即使状态值 xxx 更新,而是会将更新操作加入到 React 的更新队列中。这是因为 React 会对多个状态更新进行批处理,然后一次性地触发重新渲染。 因此,如果你在调用 setXxx 后立即访问状态值 xxx,获取到的是更新之前的旧值,而不是最新的值。 你把 console.log(rangIds)放在 rangChange函数外面打印。 set后组件重新执行 打印的rangIds就是最新的值了