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
中的第一项。