使用以前的状态,通过单击按钮来递减计数


export default class App extends Component {
state = {
data: [{ name: "Zuko", count: 1 }],
};
handle = () => {
this.setState((prev) => {
console.log(prev.data[0].count);
return {
...prev,
count: prev.data[0].count - 1,
};
});
};
render() {
return (
<>
<p>{this.state.data[0].count}</p>
<button onClick={this.handle}>Click</button>
</>
);
}
}

此部分不正确:

return {
...prev,
count:prev.data[0].count-1
};

应该是这样的:

return {
data: [ {
...prev.data[0],
count: prev.data[0].count - 1,
},
...prev.data.slice(1),
],
};

这当然只适用于data中的第一项。

最新更新