首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有嵌套表的react-data-table-component

带有嵌套表的react-data-table-component
EN

Stack Overflow用户
提问于 2020-01-09 01:00:55
回答 2查看 3.5K关注 0票数 3

我在一个node/react页面中使用了react-data-table-component。我有两个数据集,ListListNested

list是文档数据(具体地说是xlsm)的集合,在每一行上都有文档的最新版本。

listNested是一个类似的数据集,但包含list中每个记录的所有以前版本(如果它们存在)。

我将我的父表定义为:

代码语言:javascript
复制
return(    
  <DataTable
    title="Documents"
    columns={columns}
    data={list}
    pagination={true}
    fixedHeader={true}
    keyField="document_id"
    striped={true}
    highlightOnHover={true}
    noDataComponent=<div className="loader">
      <Loader
        type="Oval"
        color="#005ea2"
        height={100}
        width={100} />
    </div>
    persistTableHead={true}
    defaultSortField="updated_at"
    defaultSortAsc={false}
    overflowY={true}

    expandableRows
    expandableRowDisabled={row => row.disabled}
    expandableRowsComponent={<ExpanableComponent />}

  />
);

我的ExpandableComponent定义为:

代码语言:javascript
复制
const ExpanableComponent = ({listNested}) =>
  <DataTable
    columns={columnsNested}
    data={listNested}
    pagination={true}
    fixedHeader={true}
    keyField="doc_name"
    striped={true}
    highlightOnHover={true}
    noDataComponent=<div>No previous versions of this document were found.</div>
    persistTableHead={true}
    defaultSortField="updated_at"
    defaultSortAsc={false}
    overflowY={true}
  />;

文档[Here]没有明确定义这种类型的嵌套。我尝试使用doc_name属性作为keyField,但它不能正常工作。嵌套数据显示在父表中,而不是嵌套表中,但嵌套表头确实显示在嵌套行中。

在下图中,第2行和第3行来自ExpandableComponent中的listNested数据集,应该嵌套在第1行下。但是,第1行显示了一个空数据集(带圆圈)。

我验证了两个列表都有我想要的数据,我只是被困在如何将第二个列表放入嵌套部分。

EN

回答 2

Stack Overflow用户

发布于 2020-11-01 16:46:54

要完成这项工作,您必须准确调用您的道具data,而不是 listNested,如下所示:

代码语言:javascript
复制
const ExpanableComponent = ({data, ...props}) =>
  <DataTable data={data} {...props}/>

顺便说一句,它甚至可以将自己称为expandableRowsComponent

代码语言:javascript
复制
export default function MyDataTable({data, ...props}) {
    return <Datatable 
        expandableRows
        expandableRowsComponent={<MyDataTable className="ml-3"/>}
        noTableHead={!!data}
        noHeader={!!data}
        {...props}
    />
}

要使用此组件,您不必使用prop data。后两个支柱表明,如果数据为undefined (因为[]仍然为真),则表不会显示任何内容。

票数 2
EN

Stack Overflow用户

发布于 2021-01-26 01:11:52

我在可扩展组件的道具中添加了{data}参数作为第一个参数,它对我起作用了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59650583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档