小工具知识网

当前位置: 首页 > 行业知识 > react中修改state中的值无效?

行业知识

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)})

 打印结果:

 完美解决!

上一篇:yome软件下载指南,一键获取安装方法,轻松上手!

下一篇:收件服务器苹果邮件怎么发?