React.js row.map不是一个函数

时间:2018-04-22 08:35:29

标签: javascript reactjs

我有创建反应表的问题,acctualy我有这个代码

render() {
    var tableData = [
      {name: this.state.users}
    ];
    var tableRow = [];
     for(var x = 1; x <= this.state.users.lenght; x++) {
    tableRow.push(this.state.users[x]);
    if (x % 4 == 0) {
        tableData.push(tableRow);
        tableRow = [];
    }
}

    return (
        <Table1>
        {tableData.map((row, index) => {
            return (
                <tr key={row + index}>
                    {row.map((cell, index) => {
                        return (
                            <td key={"cell_" + index}>{cell}</td>
                        );
                    })}
                </tr>
            );
        })}
   </Table1>

在我的tableData我有一些firebase数据被正确检索,但是我把它放到表格单元格有问题,实际上这个表格代码我得到一个错误“TypeError:row.map不是功能“我该如何解决?谢谢:))

编辑: 为tableData添加了console.log enter image description here

3 个答案:

答案 0 :(得分:3)

.map是一种数组方法,tableData[0]不是数组,它是一个对象({name: this.state.users})。目前尚不清楚那里有什么,也许你可以删除它? tableData[1]以后都将是数组并且应该正确呈现。

答案 1 :(得分:2)

首先,tableData包含第一个值{name: this.state.users},它不是数组,因此row.map将失败。

其次,length

中存在拼写错误
for(var x = 1; x <= this.state.users.length; x++) {

答案 2 :(得分:2)

.map仅适用于阵列,在您的情况下,row也不是数组(tableData[0] is not array)