使用antd 的table实现多选功能,具体功能如下:
复选框按需判断是否disabled,被disabled的复选框不能被选中。
复制代码
但是在应用的时候发现点击全选后,被disabled的复选框占用了可用复选框的名额,出现了如下情况
本应该被选中的多选框没有选中,但是上面被disabled的复选框却选中了。
原来是table
是根据rowKey
属性来区分每条数据的,这和react key
的基本意义大致一样。如果没有设置,那么就默认取用每条数据的索引。并且这个rowKey
对于table
的刷新也是有积极意义的,如果发现该条数据没有变化,那么table
就不会在请求接口的时候重刷这条数据。
刚才的情况下,table
知道应该被选中的条目的总数量n
,但是并不能区分哪条应该被选中,所以就自上而下挨个选够n
条...所以就出现了上面鸠占鹊巢的情况。
在应用
table
中最好还是要设置唯一的rowKey
才能更好的优化性能,并且一定不要把rowKey
设置成索引值,以防出现不必要的bug。
生活的一部分是工作,工作的一部分是解决问题取悦生活,所以好好生活,好好工作,好好热爱(●ˇ∀ˇ●)
作者:是虾酱呀
链接:https://juejin.cn/post/6844904036555030542
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
作者:黄聪
出处:http://www.cnblogs.com/huangcong/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://www.cnblogs.com/huangcong/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。