美文网首页程序员让前端飞Web前端之路
【antd】Table组件勾选功能:分页后拼接勾选的行数组

【antd】Table组件勾选功能:分页后拼接勾选的行数组

作者: 废柴码农 | 来源:发表于2019-10-08 10:15 被阅读0次

    项目中遇到这样的问题:在用Table组件勾选功能的时候,在涉及到分页时,我需要拿到两页勾选的数组,但是Table组件打印出来的selectedRows总是当前页的数据,(参考第三张照片)

    image.png
    image.png image.png
    这个是组件自身的问题,和身边同事讨论出一个比较好的处理方法:二维数组拼接
    具体思路:将每一页作为二维数组的下标,将每一页选中的数组作为参数值

    具体操作代码如下:

    第一步骤:组合成双数组
     onSelectChange = (selectedRowKeys,selectedRows) => {
        const [doubleArr] = this.state
        doubleArr[page ? page - 1 : 0] = selectedRows;  //组合成双数组
      };
    
    第二步骤:二维数组的扁平化处理(处理为一维数组)
     mapRows = (params)=>{
      var res = []; 
      for(var i=0;i<params.length;i++){
          if(Array.isArray(params[i])){
              res = res.concat(mapRows(params[i]));
          }else{
              res.push(params[i])
          } 
      } 
      return res.filter(Boolean);   //去掉undefined的情况
    }
    
    
    第三步骤:调用方法,更新状态
    let filteredArr = this.mapRows(this.state.doubleArr)
    this.setState({
    selectedRows : filteredArr
    })
    

    最后就能拿到两页总的selectedRows数组了~

    相关文章

      网友评论

        本文标题:【antd】Table组件勾选功能:分页后拼接勾选的行数组

        本文链接:https://www.haomeiwen.com/subject/rjwdyctx.html