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

 

posted @ 2023-03-03 10:09  無玑小姐  阅读(417)  评论(0编辑  收藏  举报