javascript - MUI-Datatable 可扩展行

标签 javascript reactjs material-ui mui-datatable

我正在尝试嵌套表格。一个表,当单击特定表行时,另一个表会在其正下方展开(与主表有明显区别),并且与该特定行相关的数据将显示在该子表中。每行都应该能够呈现子表。 我试图按照他们的官方文档进行操作,但没有这样做。 下面是我从他们的文档中复制的代码示例。

import React from "react";
import ReactDOM from "react-dom";
import MUIDataTable from "mui-datatables";
import TableRow from "@material-ui/core/TableRow";
import TableCell from "@material-ui/core/TableCell";

class App extends React.Component {
  render() {
    const columns = ["Name", "Title", "Location", "Age", "Salary"];

    const data = [
      ["Gabby George", "Business Analyst", "Minneapolis", 30, "$100,000"],
      ["Aiden Lloyd", "Business Consultant", "Dallas", 55, "$200,000"],
      ["Jaden Collins", "Attorney", "Santa Ana", 27, "$500,000"],
      ["Franky Rees", "Business Analyst", "St. Petersburg", 22, "$50,000"],
      ["Aaren Rose", "Business Consultant", "Toledo", 28, "$75,000"],
      [
        "Blake Duncan",
        "Business Management Analyst",
        "San Diego",
        65,
        "$94,000"
      ],
      ["Frankie Parry", "Agency Legal Counsel", "Jacksonville", 71, "$210,000"],
      ["Lane Wilson", "Commercial Specialist", "Omaha", 19, "$65,000"],
      ["Robin Duncan", "Business Analyst", "Los Angeles", 20, "$77,000"],
      ["Mel Brooks", "Business Consultant", "Oklahoma City", 37, "$135,000"],
      ["Harper White", "Attorney", "Pittsburgh", 52, "$420,000"],
      ["Kris Humphrey", "Agency Legal Counsel", "Laredo", 30, "$150,000"],
      ["Frankie Long", "Industrial Analyst", "Austin", 31, "$170,000"],
      ["Brynn Robbins", "Business Analyst", "Norfolk", 22, "$90,000"],
      ["Justice Mann", "Business Consultant", "Chicago", 24, "$133,000"],
      [
        "Addison Navarro",
        "Business Management Analyst",
        "New York",
        50,
        "$295,000"
      ],
      ["Jesse Welch", "Agency Legal Counsel", "Seattle", 28, "$200,000"],
      ["Eli Mejia", "Commercial Specialist", "Long Beach", 65, "$400,000"],
      ["Gene Leblanc", "Industrial Analyst", "Hartford", 34, "$110,000"],
      ["Danny Leon", "Computer Scientist", "Newark", 60, "$220,000"],
      ["Lane Lee", "Corporate Counselor", "Cincinnati", 52, "$180,000"],
      ["Jesse Hall", "Business Analyst", "Baltimore", 44, "$99,000"],
      ["Danni Hudson", "Agency Legal Counsel", "Tampa", 37, "$90,000"],
      ["Terry Macdonald", "Commercial Specialist", "Miami", 39, "$140,000"],
      ["Justice Mccarthy", "Attorney", "Tucson", 26, "$330,000"],
      ["Silver Carey", "Computer Scientist", "Memphis", 47, "$250,000"],
      ["Franky Miles", "Industrial Analyst", "Buffalo", 49, "$190,000"],
      ["Glen Nixon", "Corporate Counselor", "Arlington", 44, "$80,000"],
      [
        "Gabby Strickland",
        "Business Process Consultant",
        "Scottsdale",
        26,
        "$45,000"
      ],
      ["Mason Ray", "Computer Scientist", "San Francisco", 39, "$142,000"]
    ];

    const options = {
      filterType: "dropdown",
      responsive: "scroll",
      selectableRows : true,
      renderExpandableRow: (rowData, rowMeta) => {
        console.log(rowData, rowMeta);
        return (
          <TableRow>
            <TableCell colSpan={rowData.length}>
              Custom expandable row option. Data: {JSON.stringify(rowData)}
            </TableCell>
          </TableRow>
        );
      }
    };

    return (
      <MUIDataTable
        title={"ACME Employee list"}
        data={data}
        columns={columns}
        options={options}
      />
    );
  }
}

ReactDOM.render(<App />, document.getElementById("root"));

如有任何帮助,我们将不胜感激。

最佳答案

您是否尝试过添加 expandableRows 选项?

const options = {
  filterType: "dropdown",
  responsive: "scroll",
  selectableRows : true,
  expandableRows: true // Try Adding This
  renderExpandableRow: (rowData, rowMeta) => {
    console.log(rowData, rowMeta);
    return (
      <TableRow>
        <TableCell colSpan={rowData.length}>
          Custom expandable row option. Data: {JSON.stringify(rowData)}
        </TableCell>
      </TableRow>
    );
  }
};

关于javascript - MUI-Datatable 可扩展行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53993615/

相关文章:

javascript - 使用 Webpack 加载时,随机文本会填充到 CSS 选择器?

javascript - Backbone .fetch() 未使用最新数据更新集合

javascript - 如何将 React.DOM 元素转换为 JSX?

javascript - React - 从子组件更新状态,然后根据状态执行某些操作

reactjs - 无法在react中获取material-ui SelectField的属性

javascript - 将自定义元素添加到 TinyMCE 的首选方式

javascript - 在 body 标签中嵌入 Javascript 文件

javascript - 如何在 Next.js 中为多个 url 创建一个处理程序?

reactjs - 如何在 Material ui core 3.9.2 中使用 InputRef

reactjs - 使用 React 在 Material-UI 中的特定日期中添加一些标记