reactjs - react 即使在删除后它仍然处于检查状态
问题描述
我选择要删除的项目,然后将其删除。然后,其余项目显示为已选中。
如果有 item1, item2, item3, item4 并检查项目 1,2 并删除它们。然后,只剩下第 3 项和第 4 项,但呈现为选中状态。我怎样才能初始化它?
this.state = {
options: [],
subject: []
....
}
_delete() {
const selected = this.state.options
const newList = this.state.subject
if(selected.length !== 0){
if(selected.length > 1){
let i
selected.sort(function(a, b) {
return b - a;
// 11, 10, 4, 3, 2, 1
});
for(i=0; i<selected.length; i++){
newList.splice(selected[i],1)
}
}
else{
newList.splice(selected[0],1)
}
}
this.setState({options: [], subject: newList})
render(){
return(
{this.state.subject.map((item, index) => {
return <TableRow style={{'alignItems':'center'}}>
<TableCell style={{"textAlign":"center"}}><Checkbox onChange={function(e){
const selected = this.state.options
let cancel
if(e.target.checked){
selected.push(index)
}
else{
cancel = selected.indexOf(index)
selected.splice(cancel,1)
}
this.setState({
options: selected
})
}.bind(this)}></Checkbox></TableCell>
<TableCell style={{"textAlign":"center"}}>{item.fields.course_year}</TableCell>
<TableCell style={{"textAlign":"center"}}>{item.fields.course_semester}</TableCell>
<TableCell style={{"textAlign":"center"}}>{item.fields.course_colgnm}</TableCell>
<TableCell style={{"textAlign":"center"}}>{item.fields.course_sustnm}</TableCell>
<TableCell style={{"textAlign":"center"}}>{item.fields.course_pobjnm}</TableCell>
<TableCell style={{"textAlign":"center"}}>{item.fields.course_sbjtclss}</TableCell>
<TableCell style={{"textAlign":"center"}}>{item.fields.course_clssnm}</TableCell>
<TableCell style={{"textAlign":"center"}}>{item.fields.course_pnt}</TableCell>
<TableCell style={{"textAlign":"center"}}>{item.fields.course_remk}</TableCell>
</TableRow>}
)}
<Button variant="contained" color="primary" size='large' onClick={this._delete.bind(this)}>delete</Button?
);
}
状态改变点有问题吗?
解决方案
推荐阅读
- java - 使用 JDA 向 Discord 中的特定频道发送消息
- ios - swift 4.2 Enum case '' not found in type '?' switch 语句中要求冗余解包隐式解包的可选
- c++ - 是否可以获取存储在集合中的对象?C++
- python - 在 Windows 和 Python 中处理文件路径时出错
- javascript - 如何在Angular中(单击)后禁用按钮
- javascript - 为什么我从谷歌地图 API 传递 json 数据时会出错?
- css - 响应式登录栏
- finite-automata - 非确定性有限自动机构造
- tabulator - 是否可以打开其列未折叠的表?
- vba - 循环从列中删除空白单元格