为了账号安全,请及时绑定邮箱和手机立即绑定

React:如何更新数组映射中的对象

React:如何更新数组映射中的对象

富国沪深 2021-06-01 10:06:12
我试图在单击按钮时更新数组的值。但我无法弄清楚如何使用this.setState.export default class App extends React.Component {  state = {    counters: [{ name: "item1", value: 0 }, { name: "item2", value: 5 }]  };  render() {    return this.state.counters.map((counter, i) => {      return (        <div>          {counter.name}, {counter.value}          <button onClick={/* increment counter.value here */}>+</button>        </div>      );    });  }}counter.value单击按钮时如何增加?
查看完整描述

3 回答

?
MM们

TA贡献1886条经验 获得超2个赞

您可以使用一个处理程序来映射counters和更新单击按钮的相应计数器项。这里我们i从父作用域中取出,并比较它以找到要更改的正确项。


<button onClick={() => {

    this.setState(state => ({

        counters: state.counters.map((item, j) => {

            // is this the counter that I want to update?

            if (j === i) {

                return {

                    ...item,

                    value: item.value + 1

                }

            }


            return item

        })

    }))

}}>+</button>


查看完整回答
反对 回复 2021-06-03
  • 3 回答
  • 0 关注
  • 199 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信