this.setState可以更新一个数组对象中的value吗?

    constructor(props) {
        super(props);
        this.state = {
          moreData: [
            {name: 'a', value: '1'},
            {name: 'b', value: '2'},
            {name: 'c', value: '3'}
          ]
        }
    }

如何通过this.setState讲name为a的value改成'10'

阅读 10.6k
1 个回答

setState 只能更改最外层属性的值。

你这种情况,需要自己手动修改,然后重新赋值。

例如:

changeValue() {
    const data = this.state.moreData.map(v => {
        if (v.name === 'a') {
            v.value = '10'
        }
        return v
    });
    this.setState({ moreData: data })
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题