Я пытаюсь создать компонент таблицы, который динамически отображает список элементов на основе набора данных. Компонент Table состоит из <TableHead/>
и <TableBody/>
. Я использую .map()
для динамического создания присваиваемых значений для компонента <TableCell/>
.
const data = [{
new_cases: 100,
total_cases: 200,
province: 'Ontario'
},
{
new_cases: 300,
total_cases: 400,
province: 'Edmonton'
}]
const CustomTable = () => {
const tableHead = Object.getOwnPropertyNames(data[0]);
return (
<TableContainer>
<TableHead>
<TableRow>
{tableHead.map(name => <TableCell>{name}</TableCell>)}
</TableRow>
</TableHead>
<TableBody>
{data.forEach(row => (
<TableRow>
{Object.values(row).map(column => (
<TableCell>{column}</TableCell>
))}
</TableRow>)
)}
</TableBody>
<TableContainer>
);
};
export default CustomTable;
Однако проблема заключается в том, что <TableCell/>
заключен в <TableBody/>
не отображает значение column
. Что странно в том, что он правильно возвращает значения свойств, когда я console.log(column)
Я что-то упустил?
<TableRow>
{Object.values(row).map(column => <TableCell>{column}</TableCell>)}
</TableRow>)
//TableCell is not rendered.
<TableRow>
{Object.values(row).map(column => console.log(column))}
</TableRow>
//returns 100, 200, 'Ontario', 300, 400,'Edmonton'