行业知识
react中修改state中的值无效?
2026-10-19 01:03:00
来源:互联网转载
// 初始化statestate = { personArr:[ {name:'张三',id:1}, {name:'李四',id:2}, {name:'王五',id:3} ]} componentDidMount(){ const newName = '赵六' const indexUpdate = 1 const newArr = this.state.personArr.map((item,index)=>{ if(indexUpdate === index){ return {...item,name:newName} }else{ return {...item} } }) this.setState({ personArr:newArr }) console.log('personArr',this.state.personArr)} index.php/tags-41973.html" >���印的值:
问题来了,明明已经修改过了,为什么拿不到值呢,原来是setState的执行机制导致的,setState是作为异步来执行的,打印是同步的,因此拿不到值
解决: 要想获取更新后的值,只需在setState第二个参数中获取即可
this.setState({ personArr:newArr},()=>{ console.log('personArr',this.state.personArr)}) 打印结果:
完美解决!