黄聪

论SEO对人类的重要性,请看我的博客:hcsem.com

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

使用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
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted on 2022-04-10 10:36  黄聪  阅读(537)  评论(0编辑  收藏  举报