【发布时间】:2019-01-23 22:41:00
【问题描述】:
我正在尝试实现一些功能,允许将复选框的名称推送到组件状态下的数组中,并且在未选中复选框时删除该名称,我可以推送到数组中好的,它正在从中删除我遇到问题的项目。
我尝试过使用 splice,但我遇到的问题是数组似乎落后了一个动作,因此不允许我拼接出正确的项目。
handleCheckboxChange = event => {
if (event.target.checked) {
this.setState({
check: [...this.state.check, event.target.name]
});
} else if (!event.target.checked) {
let index = this.state.check.indexOf(event.target.name);
this.setState({
check: this.state.check.splice(index, 1)
});
}
};
预期结果是当用户选中或取消选中相应的复选框时,将在数组中添加和删除项目。
【问题讨论】:
-
请记住,setState() 是异步的。它很可能会如您所愿发生,只是不在您期望的时间范围内。
标签: javascript reactjs