json - 有没有办法在 React 中创建嵌套数据表?
问题描述
我试图创建一个这样的 表:我想要的表
但是当我按照本教程https://codesandbox.io/s/material-ui-table-demo-with-row-span-dq1w6?file=/demo.js并以多种方式尝试时,结果不正确.
这是我的结果:https ://codesandbox.io/s/material-ui-table-demo-with-row-span-1hhvv?file=/demo.js
谢谢您的帮助
解决方案
这个解决方案需要整理,但概念就在那里。
这里的技巧是让第一列的rowspan
行数等于最后一列的行数。为此,您必须累积details
每个datas
.
这是一个工作示例:
export default function SpanningTable() {
const classes = useStyles();
return (
<Paper className={classes.root}>
<Table className={classes.table}>
<TableHead>
<TableRow>
<TableCell>ROOT</TableCell>
<TableCell>DATA</TableCell>
<TableCell>DETAIL</TableCell>
</TableRow>
</TableHead>
<TableBody>
{sample.map(root => (
<Fragment>
<TableRow>
<TableCell rowSpan={root.datas.reduce((length, data) => length + data.details.length + 1, 0) + 1}>
{root.name}
</TableCell>
</TableRow>
{root.datas.map(data => (
<Fragment>
<TableRow >
<TableCell rowSpan={data.details.length + 1}>{data.name}</TableCell>
</TableRow>
{data.details.map(detail => (
<TableRow>
<TableCell>{detail.name}</TableCell>
</TableRow>
))}
</Fragment>
))}
</Fragment>
))}
</TableBody>
</Table>
</Paper>
);
}
推荐阅读
- python - Python 3.9.1 迭代 lst 以传递给 tst2
- javascript - 测试来自 React 函数组件的 Async 函数的后续函数调用
- ios - UINavigationViewController 内容显示幻像标签栏
- ruby - 在 Apple Silicon 上:ruby-build:未找到定义:3.0.0
- ios - 请问,如果iOS设备上的屏幕打开或关闭,我如何使用FireMonkey?
- python - 射线 + cross_val_score
- ruby-on-rails - 在 rails 中编辑表单 - 没有路线匹配 [PUT]
- javascript - 水平导航栏下拉菜单中出现双边框
- node.js - 如果不发送图像,我怎么能在我的用户上实现默认图像?
- flutter - flutter_local_notifications 不适用于 ios,但适用于 android