关于antd 中嵌套表格子表格数据污染问题

  使用Antd 完成嵌套表格时会出现点击展开按钮出现每行嵌套的子数据一样形成数据污染。例如:打开第一行,第再打开第二行,则第一行子表格的数据会消失),主要原因就是因为没有在嵌套子表格中确定要显示的主键;主要解决办法有两种,一种是点击展开按钮时关闭其他展开项,另一种是在将每次请求到的子表格数据给存起来,然后嵌套子表格中的dataSource指定确定的Key例如(dataSource={data[item.Cid]),具体链接: https://www.cnblogs.com/fengxiana/p/13812598.html

主要说一下设置点击展开按钮关闭其他展开项:

(1)在父表格中设置: expandedRowKeys = { dataNew }

(2)设置初始值: const [dataNew, setDataNew] = useState([])

(3)在点击展开按钮时设置值:(在onExpand函数中)

   const assq = debounce(200, false, (expanded: boolean, record: any ) => {
      if(dispatch && expanded) {
        dispatch({
               ...... 
              },
          })
      }
      const temp = []
      if (expanded) {
          temp.push(record.clusterid || record.key || record.apptype)
      }
      setDataNew(temp)
    });
原文地址:https://www.cnblogs.com/newCoo/p/14345374.html