Tables with explicit structure
overview
- The header uses Thead and Th
- The body uses Tbody and Td:
<Table>
{/* 1. header */}
<Table.Thead>
<Table.Tr>
<Table.Th>{col1Label}</Table.Th>
<Table.Th>{col2Label}</Table.Th>
<Table.Th>{col3Label}</Table.Th>
</Table.Tr>
</Table.Thead>
{/* 2. rows */}
<Table.Tbody>
<Table.Tr>
<Table.Td>{item1.name}</Table.Td>
<Table.Td>{item1.level}</Table.Td>
<Table.Td>{item1.class}</Table.Td>
</Table.Tr>
{/* ... more rows */}
</Table.Tbody>
</Table>
build rows in a separate variable
- from an array of object:
const rows = items.map((item) => (
<Table.Tr>
<Table.Td>{item.name}</Table.Td>
<Table.Td>{item.level}</Table.Td>
<Table.Td>{item.class}</Table.Td>
</Table.Tr>
))
- from an array of arrays:
const rows = items.map((item) => (
<Table.Tr>
<Table.Td>{item[0]}</Table.Td>
<Table.Td>{item[1]}</Table.Td>
<Table.Td>{item[2]}</Table.Td>
</Table.Tr>
))
We then use them in Tbody:
<Table.Tbody>{rows}</Table.Tbody>