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

Javascript React.js row.map不是一个函数,javascript,reactjs,Javascript,Reactjs,我在创建react表时遇到了一个问题,碰巧我有这个代码 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) {

我在创建react表时遇到了一个问题,碰巧我有这个代码

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 .map是数组的方法,tableData[0]不是数组,而是对象{name:this.state.users}。现在还不清楚那是怎么回事,也许你可以把它拿走?tableData[1]以后的所有内容都将是数组,并且应该正确呈现。

.map是数组的方法,tableData[0]不是数组,而是对象{name:this.state.users}。现在还不清楚那是怎么回事,也许你可以把它拿走?tableData[1]以后的所有数据都是数组,应该正确呈现。

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

第二,长度有误

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

第二,长度有误


.map仅在数组上可用,在您的情况下,行也不是数组tableData[0]不是数组

.map仅在数组上可用,在您的情况下,行也不是数组tableData[0]不是数组

你能控制台.logtableData并向我们显示结果吗?将其添加到问题:this.state.users.length->this.state.users.length你能控制台.logtableData并向我们显示结果吗?将其添加到问题:this.state.users.length->this.state.users.lengthWell,我想我无法删除它:我如何将tableData制作为数组;tableData是一个数组,但其中的第一项不是。您正在执行tableData.map row=>row.map。。。这意味着每一行也必须是一个数组。但是第一行是一个对象。我不能说如何将它更改为数组,因为我不知道它的用途。为什么您决定将其放入数组中?假设我正在从firebase数据库检索用户名,我想将它们全部放入表中,并使它们可以单击以检索单击的用户数据,我已经了解到将数据放入数组将是最好的选择:顺便说一句,谢谢您的时间尝试这个:而不是var tableData=[{name:this.state.users}]只需写var tableData=[]。它现在渲染了吗?缺少了什么吗?它只在一个cel中显示用户名,而且,数据库中有4个用户名,而应用程序只显示3个,所以丢失了一个。好吧,我想我无法删除它:如何将tableData设为数组?;tableData是数组,但其中的第一项不是。您正在执行tableData.map row=>row.map。。。这意味着每一行也必须是一个数组。但第一行是一个对象。我不能说如何将其更改为数组,因为我不知道它的用途。为什么决定将其放入数组中?假设我正在从firebase数据库检索用户名,我想将它们全部放入表中,并使它们可以单击以检索单击的用户数据,我已经读到,将数据放入数组将是实现这一点的最佳选择:顺便说一句,谢谢您的时间尝试这个:而不是var tableData=[{name:this.state.users}]只需编写var tableData=[]。它现在渲染了吗?缺少什么吗?它只显示一个cel中的用户名,而且数据库中有4个,而应用程序只显示3个,所以缺少一个
for(var x = 1; x <= this.state.users.length; x++) {