为了账号安全,请及时绑定邮箱和手机立即绑定

全选已好用,但是单独的checkbox不好用了,打不上√

全选已好用,但是单独的checkbox不好用了,打不上√

回首忆惘然 2019-05-21 11:19:47
importReactfrom'react';import{Link}from'dva/router'import{Menu,Icon,Avatar,Layout,Breadcrumb,Button,notification,Select,Pagination,Checkbox,Input}from'antd';importlogofrom'../css/App.css';importayjsfrom'../css/ayjs.css';importReactDOMfrom'react-dom';classSiderextendsReact.Component{state={check:false,checks:false,}showInput=(e)=>{//全选和全不选console.log(e.target.checked);this.setState({check:e.target.checked,checks:e.target.checked,})}onChangea(e){console.log(`checked=${e.target.checed}`);}render(){return();}};exportdefaultSider
查看完整描述

2 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

就你的代码而言,单选没效果是因为,onChange的时候this.state.checks的状态没有改变,this也没有传入方法里面。改正后onChangea(e){
this.setState({
checks:e.target.checked,
});
}这时你会发现单选后所有的Checkbox都被选中了,是因为你Checkbox设置的checked都是this.state.checks,所以状态都会改变。所以你的代码本身就不应该这样写,这里可以用CheckboxGroup去实现,具体代码可参考
                            
查看完整回答
反对 回复 2019-05-21
?
杨魅力

TA贡献1811条经验 获得超6个赞

render
return(
c)}onChange={()=>this.onChange()}/>
this.onChange(1)}/>
this.onChange(2)}/>
this.onChange(3)}/>
);
state
constructor(props){
super(props);
this.state={checks:[false,false,false]};
}
onChange
onChange(index){
let{checks}=this.state;
if(!index){
checks=checks.map(()=>!checks.some(c=>c));
}else{
checks=checks.map((c,i)=>{
if((i+1)===Number(index)){
return!c;
}
returnc;
});
}
this.setState({checks});
}
                            
查看完整回答
反对 回复 2019-05-21
  • 2 回答
  • 0 关注
  • 479 浏览
慕课专栏
更多

添加回答

了解更多

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信