react-data-table-component 与嵌套表

Posted

技术标签:

【中文标题】react-data-table-component 与嵌套表【英文标题】:react-data-table-component with nested tables 【发布时间】:2020-04-26 06:26:21 【问题描述】:

我在节点/反应页面中使用 react-data-table-component。我有 2 个数据集,ListListNested

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

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

我的父表定义为:

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 定义为:

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 行显示一个空数据集(带圆圈)。

我验证了两个列表都有我想要的数据,我只是想知道如何将第二个列表粘贴到嵌套部分中。

【问题讨论】:

你有遮阳篷吗? @AndersonSilva 很奇怪,如果您将 data 作为可扩展组件中的第一个参数,您将获得行数据,所以它对我有用。 【参考方案1】:

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

const ExpanableComponent = (data, ...props) =>
  <DataTable data=data ...props/>

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

export default function MyDataTable(data, ...props) 
    return <Datatable 
        expandableRows
        expandableRowsComponent=<MyDataTable className="ml-3"/>
        noTableHead=!!data
        noHeader=!!data
        ...props
    />

要使用这个组件,你不必使用 prop data。后面的两个 props 表明如果数据是 undefined(因为 [] 仍然是真实的),那么表格不会显示任何内容。

【讨论】:

【参考方案2】:

我在可扩展组件的 props 中添加了 data 参数作为第一个参数,它对我有用。

【讨论】:

以上是关于react-data-table-component 与嵌套表的主要内容,如果未能解决你的问题,请参考以下文章