antd mobile 复选框(checkbox)如何实现全选且不影响单选?
程序开发
2023-09-13 21:56:56
antd mobile 复选框(checkbox)如何实现全选且不影响单选?
整体思路
我们需要点击一个多选框,从而实现全选对应的所有的复选框,但是又不得影响想要单个选中的操作,为什么会有这个但是下面会说明。
Checkbox API
首先我们先搞清楚defaultChecked
与checked
的区别:
defaultChecked
是初始是否选中,也就是只会在初始渲染的时候作用一次,后边对它进行的操作将不会直接展现在样式上,因此它不是我们所需要的。
checked
制定当前是否选中,也就是对他的操作可立马展现在样式上,它才是我们真正需要的。
搞清楚我们所需要的就简单的多了。
首先我们先实现全选,看代码:
...
this.whether(e)}>"全选"
whether(e) {this.setState({status:e.target.checked});}
这里的status
就是来管控所有的所有的CheckboxItem状态,我们只有在点击全选时去改变这个状态就可以实现对所有的checkbox的选择,但是如果仅仅这样就会造成我们想点击单个时候无法实现,因为我们仅仅有一个状态是管控,所以要想两个同时实现就必须有两个状态去实现管控。代码如下:
this.onChange(e)}>
this.onChange(e)}>
...
this.whether(e)}>"全选"
whether(e) {this.setState({status:e.target.checked});}
只有在我们想要逐个点击的时候调用onchange方法改变被点击的这个thisSatus值就行了。多余代码不再赘述,俗话说授人以鱼,不如授人以渔。
如果你的checkbox是循环出来的没有这个状态那么你可以在获取数据的时候,自己添加一个字段来作为当前是否选中的标示,或者拜托服务端的同学。
可能文章的中的代码有不规范的地方,但是旨在告诉大家如何实现的思路,有任何错误欢迎指出,立马改正。自己也会把工作中遇到的坑或者新想法分享出来,大家共同进步,共同成长
标签:
上一篇:
Angular7开荒----集成Less
下一篇:
相关文章
-
无相关信息