geo*_*eop 5 html-table reactjs material-ui
我正在使用 Material UI 中的“Books”表。它有 3 列:“书号”、“标题”和“章节”。我希望每一章都像列表项一样显示在单独的行中,如下所示:
第1章
第2章
第3章
并不是
第一章 第二章 第三章
我尝试了不同的方法,例如添加“\n”,将其存储在变量中,和/或将其包含在模板文字中,如下所示:
const row2 = "Chapter 1\nChapter 2";
const row4 = `Chapter 1\nChapter 2\nChapter 3`;
const rows = [
createData("1", "Book 1", "Not Applicable"),
createData("2", "Book 2", row2),
createData("3", "Book 3", "Chapter 1\nChapter 2"),
createData("4", "Book 4", row4)
];
Run Code Online (Sandbox Code Playgroud)
这是完整的代码。
我将创建一个Chapters接受valueprop \xe2\x80\x94的组件value,然后将其转换为array使用split("\\n")并将用于将每个章节显示为列表项。
function Chapters({ value }) {\n const chapters = value.split("\\n");\n\n return (\n <List>\n {chapters.map((chapter, i) => (\n <ListItem key={i}>{chapter}</ListItem>\n ))}\n </List>\n );\n}\nRun Code Online (Sandbox Code Playgroud)\n然后在我的上columns.map,我会检查column.label === "Chapters";如果是true,我会重新value分配调用我的Chapters组件。
...\n{\n rows.map((row) => {\n return (\n <TableRow hover role="checkbox" key={row.annex}>\n {columns.map((column) => {\n let value = row[column.id];\n\n if (column.label === "Chapters") {\n value = <Chapters value={value} />;\n }\n\n return <TableCell key={column.id}>{value}</TableCell>;\n })}\n </TableRow>\n );\n });\n}\nRun Code Online (Sandbox Code Playgroud)\n\n
| 归档时间: |
|
| 查看次数: |
8044 次 |
| 最近记录: |