Компонент Material UI <TableCell>не выполняет динамическую визуализацию набора данных - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь создать компонент таблицы, который динамически отображает список элементов на основе набора данных. Компонент 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'

1 Ответ

1 голос
/ 28 апреля 2020

Вы можете изменить forEach на map.

{data.forEach(row => (

на

{data.map(row => (
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...