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)//这一句是必须的,不然状态无法更改

浙公网安备 33010602011771号