Antd Table rowSelection属性翻页后丢失前页选中项的思考以及处理方案

出现这个问题的时候我去看了一下antd官网上的例子

很奇怪,官网上的是不会出现选择后翻页会丢失的问题

后来经过观察发现,他们的数据压根不是翻页的数据(我们后台向前台返回table数据的时候一般是返回十条或者xx条),antd官方的数据是for循环生成的,不用加pagination属性就可以自动分页

所以人家不用考虑这个问题

但是实际项目中不可能直接吧所有数据返回回来,一定是分页后的

再次翻看table组件的api(多理解,多看!这很重要)

onSelect方法和onSelectall方法:

用户手动选择/取消选择某行的回调,这个方法应该可以解决我们现在的问题

思路:  先定义一个选中项的集合 selectKeys:[ ]

             然后在onSelect方法(参数就是当前勾选的那一条数据的key)触发的时候,将这个方法的参数,放到selectKeys中就完事




const onSelectChange = (keys:any) => {
    const selectdata =  selectedRowKeys.concat(keys) // 将两个集合合并
    console.log(selectdata)
    dispatch({
      type: 'organUsermanage/updateState',  // 更新state
      payload: {
        selectedRowKeys:  selectdata,
      }
    })
  }


const rowSelection = {
    selectedRowKeys, // 这里就是当前选中项的设置
    onSelect: (record:any) => {
      onSelectChange(record.roleId)
    },
  };



 

猜你喜欢

转载自blog.csdn.net/wangzhichaogege/article/details/112358630