antd table 多选框翻页多选,前页数据被清空

3,530 阅读1分钟

多选框翻页 多选的时候有bug,当选了第一页的数据,再选第二页的数据,第一页的数据selectedRows会被清空。

解决方案:把选中的数据手动存起来

nameSelectChange = (selectedRowKeys, newSelectedRows) => {
       let oldRows = this.state.nameSelectedRows;     //oldRows 是对象
       // 加数据
       newSelectedRows.length > 0 && newSelectedRows.map(
           p=>{
               if( oldRows[p.id] === undefined){
                   oldRows[p.id] = p;
               }
           }
       );
       // 删除数据时筛选key存在的数据
       let newRows = {};
       selectedRowKeys.map(
           p=>{
               newRows[p] = oldRows[p];
           }
       );
       this.setState({ 
           nameSelectedKeys: selectedRowKeys,
           nameSelectedRows: newRows
       }, ()=>{
           let v = {
               selectedRowKeys,
               nameRows: Object.values(newRows)    //把对象变为数组
           };
         //传到父组件保存
           this.props.selectedNames(v); 
       });
       
   };

我没使用过这个方法,后端配合加了通过ID查记录的接口获取的

更多方法请查看来源链接

来源链接: www.jianshu.com/p/51b515bbc…