首页 > 解决方案 > 材质界面组件不会动态呈现数据集

问题描述

我正在尝试创建一个基于数据集动态呈现项目列表的表格组件。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'

标签: javascriptreactjsmaterial-ui

解决方案


您可能需要将 更改forEachmap

{data.forEach(row => (

{data.map(row => (

推荐阅读