请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

求教老师,数组对象属性改变了,checkBox 选中状态不更新,什么原因

onClick(data){
   data.checked = !data.checked;
   if (data.name === 'ALL' && data.checked ===true){
       for (let i =0;i <this.state.keysArr.length;i++){
           var key = this.state.keysArr[i];
           key.checked = true;
           key.name = 'xxxxxx'
       }
       this.forceUpdate();
   }
}


我想点击ALL 把所有的标签都置为可选 ,上面写 只有名字变化了 check状态没有改变

正在回答 回答被采纳积分+3

插入代码

2回答

CrazyCodeBoy 2018-03-30 10:07:08

getDerivedStateFromProps是react 16.3.0以上版本的新特性,用来代替componentwillreceiveprops,看一下你的react版本,react 16.3的一些用componentwillreceiveprops

0 回复 有任何疑惑可以回复我~
CrazyCodeBoy 2018-03-29 10:07:34

断点调试一下看checkBox的

1
2
3
4
5
6
7
8
static getDerivedStateFromProps(nextProps, prevState) {    
if (prevState.isChecked !== nextProps.isChecked) {    
return {    
isChecked: nextProps.isChecked    
};    
}    
return null;    
}

方法有没有被调用,https://github.com/crazycodeboy/react-native-check-box/blob/master/index.js

0 回复 有任何疑惑可以回复我~
  • 提问者 慕移动4626964 #1
    Comand进源码,在那个方法里面打debugger不走,save方法里面也不走,我把试着源码删了重新加载也不报错怎么回事?
    回复 有任何疑惑可以回复我~ 2018-03-29 12:54:24
  • 提问者 慕移动4626964 #2
    打断点没有进去,是不是react版本问题,这个方法要换成要用老方法?
    回复 有任何疑惑可以回复我~ 2018-03-29 18:52:07
  • 提问者 慕移动4626964 #3
    解决了,react15.版本没有这个方法。用老方法才行。
    回复 有任何疑惑可以回复我~ 2018-03-29 19:44:11
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信