Reactjs 嵌套材质ui表使用递归函数对树型数据结构,如何对齐列?

Reactjs 嵌套材质ui表使用递归函数对树型数据结构,如何对齐列?,reactjs,recursion,html-table,nested,material-ui,Reactjs,Recursion,Html Table,Nested,Material Ui,我有一个嵌套的材质ui,其代码是一个表,其中显示了任务的待办事项列表。我使用树状结构来存储任务及其子任务等。我遇到的问题是,表的列彼此不对齐或标题不对齐,我认为这是由于tableRow和Collapse组件周围的div标记,可能还有Collapse组件,但是我不确定如果没有这些,如何重写代码,因为函数必须为任务数据呈现一行,并在折叠组件中对任务的子项递归运行函数以呈现它们。我已经实现了一个非常有效的解决方案 表行的此特定函数中存在两个问题: function treeTable(taskTree

我有一个嵌套的材质ui,其代码是一个表,其中显示了任务的待办事项列表。我使用树状结构来存储任务及其子任务等。我遇到的问题是,表的列彼此不对齐或标题不对齐,我认为这是由于tableRow和Collapse组件周围的div标记,可能还有Collapse组件,但是我不确定如果没有这些,如何重写代码,因为函数必须为任务数据呈现一行,并在折叠组件中对任务的子项递归运行函数以呈现它们。

我已经实现了一个非常有效的解决方案

表行的此特定函数中存在两个问题:

function treeTable(taskTree) {
    return taskTree.children.map(task => (
      <div>
        <TableRow hover key={task.value.id}>
          {headers.map(({ key, format = value => value }) => (
            <TableCell>{format(task.value[key])}</TableCell>
          ))}
          <TableCell padding="default">
            {task.children.length > 0 ? (
              <Button
                key={task.value.id}
                onClick={() => handleClick(task.value.id)}
              >
                {state[task.value.id] ? <ExpandLess /> : <ExpandMore />}
              </Button>
            ) : null}
          </TableCell>
        </TableRow>
        <Collapse
          key={task.value.id}
          // component="table"
          in={state[task.value.id]}
          timeout="auto"
          unmountOnExit
        >
          {treeTable(task)}
        </Collapse>
      </div>
    ));
  }
function treeTable(taskTree, collapseId) {
    return taskTree.children.map(task => (
      <React.Fragment>
        <TableRow hover key={task.value.id}>
        {headers.map(({ key, format = value => value }) => (
            <TableCell style={{ padding: 0 }}>
              <Collapse
                key={collapseId}
                // component="table"
                in={state[collapseId]}
                timeout="auto"
                unmountOnExit
              >
                {format(task.value[key])}
              </Collapse>
            </TableCell>
          ))}
          <TableCell style={{ padding: 0 }}>
            <Collapse
              key={collapseId}
              // component="table"
              in={state[collapseId]}
              timeout="auto"
              unmountOnExit
            >
              {task.children.length > 0 ? (
                <Button
                  key={task.value.id}
                  onClick={() => handleClick(task.value.id)}
                >
                  {state[task.value.id] ? <ExpandLess /> : <ExpandMore />}
                </Button>
              ) : null}
            </Collapse>
          </TableCell>
        </TableRow>
        {treeTable(task, task.value.id)}
      </React.Fragment>
    ));
  }