解决ant table 翻页后selectedRowKeys丢失的问题

依赖

import { uniq } from 'lodash';

变量


const [checkedList, setCheckedList] = useState([]);

示例


<Table 
...
rowSelection={}
/>

代码


 rowSelection={{
          selectedRowKeys: checkedList,
          onSelect: (record, selected) => {
            let newCheckedList = JSON.parse(JSON.stringify(checkedList));
            if (selected) {
              newCheckedList.push(record.Id);
            } else {
              newCheckedList = newCheckedList.filter((item) => {
                return item != record.Id;
              });
            }
            setCheckedList(uniq(newCheckedList.filter((item) => item)));
          },
          onSelectAll: (selected, selectedRows, changeRows) => {
            let newCheckedList = JSON.parse(JSON.stringify(checkedList));
            if (selected) {
              newCheckedList = newCheckedList.concat(selectedRows.map((item) => item && item.Id));
            } else {
              newCheckedList = newCheckedList.filter((item) => {
                let result = true;
                changeRows.forEach((item2) => {
                  if (item == item2.Id) {
                    result = false;
                  }
                });
                return result;
              });
            }
            console.log(newCheckedList);
            setCheckedList(uniq(newCheckedList.filter((item) => item)));
          },
        }}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容