image.png
前言0:首先安装immutable.js:npm install --save-g-dev immutable
前言1:为方便还原问题,代码能简写就简写。
问题:简洁版如图:
图1显示的是测试1的勾,但点击c、d,勾是打不上的,测试2依然,原因是view没有刷新
1
解决方法:
方法1:在每次点击勾时,触发checkbox的onChange,在该方法内,设置time,令view强制刷新:
this.setState({
defaultRowCheck:newArr,
time:new Date()})
第二种方法:将check转换为Immutable对象也可以解决
checkChange(item,e){
let {defaultRowCheck}=this.state
//newArr已经是Immutable对象(使用fromJS()转化的)
let newArr=defaultRowCheck
let index=+(item.index)
let value=item.value
//list是index和value,map是key和value
if(newArr.includes(value)){
//