react使用this.setState给数组中某个对象赋值
先记录一下正确写法
const { payTypeList } = this.state; let temp = payTypeList dat.openFlag = type //这一句是必须的,不然状态无法更改 temp.map((item, key) => item.payType == dat.payType ? {...item, openFlag: type} : item)//这一句是必须的,不然状态无法更改 this.setState({ payTypeList: this.state.payTypeList.map((item, key) => item.payType == dat.payType ? {...item, openFlag: type} : item) },()=>{ console.log("开启-关闭扫码盒子:"+JSON.stringify(this.state.payTypeList)) })
一开始下面这两句没有加,怎么都改变不了openFlag的值
加上就可以了
dat.openFlag = type //这一句是必须的,不然状态无法更改 temp.map((item, key) => item.payType == dat.payType ? {...item, openFlag: type} : item)//这一句是必须的,不然状态无法更改