【问题标题】:Ant design table row merge based on data instead of index valueAnt设计表行合并基于数据而不是索引值
【发布时间】:2020-07-31 18:26:44
【问题描述】:
 {
    title: 'Home phone',
    colSpan: 2,
    dataIndex: 'tel',
    render: (value, row, index) => {
      const obj = {
        children: value,
        props: {},
      };
      if (index === 2) {
        obj.props.rowSpan = 2;
      }
      // These two are merged into above cell
      if (index === 3) {
        obj.props.rowSpan = 0;
      }
      if (index === 4) {
        obj.props.colSpan = 0;
      }
      return obj;
    },
  },

在基于索引值rowspan大小的dis示例中,我们可以根据以前的列数据来做吗(如果有两个John Brown,那么行跨度应该是2)?所以基本上我们需要通过对行进行排序和比较行值来确定行跨度大小。

【问题讨论】:

  • 您可以将选项作为函数返回,并将数据作为参数传递给您自定义的合并条件
  • 你能详细说明一下吗?没有得到你..
  • 你有没有找到解决这个问题的方法? @Hemanthvrm
  • 对不起,我没有...

标签: reactjs html-table antd


【解决方案1】:

https://stackblitz.com/edit/react-bubauz?file=index.js 我可以给你一个名称列的想法,它可以帮助你。 如果要合并名称列:

首先您需要对表格数据进行排序。然后创建 Set()。并且你需要在 useEffect() 中明确设置。

const names = new Set();

{
  title: 'Name',
  rowSpan: 1,
  dataIndex: 'name',
  render: (value, row, index) => {
    const obj = {
      children: value,
      props: {}
    };
    
    if (names.has(value)) {
      obj.props.rowSpan = 0;
    } else {
      const occurCount = tableData.filter((data) => data.name === value).length;
      
      obj.props.rowSpan = count;
      names.add(value);
    }

    return obj;
  }
}

【讨论】:

  • 我遇到了同样的问题,我尝试将您的代码应用于我的代码,但是当我将 obj.prop.rowSpan 值设置为 0 时,我的值列消失了。我尝试在沙盒项​​目中重新创建我的问题@ 987654323@
  • @mirkovski idk 你的例子有什么问题,没有时间研究它,抱歉,但试试example
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-12
  • 2022-09-29
  • 2016-06-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多