富國滬深
2021-06-01 10:06:12
我試圖在單擊按鈕時(shí)更新數(shù)組的值。但我無法弄清楚如何使用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單擊按鈕時(shí)如何增加?
3 回答

MM們
TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊
您可以使用一個(gè)處理程序來映射counters和更新單擊按鈕的相應(yīng)計(jì)數(shù)器項(xiàng)。這里我們i從父作用域中取出,并比較它以找到要更改的正確項(xiàng)。
<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>
添加回答
舉報(bào)
0/150
提交
取消