【问题标题】:React.js row.map is not a functionReact.js row.map 不是一个函数
【发布时间】:2018-04-22 08:35:28
【问题描述】:

我在创建反应表时遇到问题,实际上我有这个代码

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

【问题讨论】:

  • 你能console.log(tableData) 告诉我们结果吗?
  • 将其添加到问题中:)
  • this.state.users.lenght -> this.state.users.length

标签: javascript reactjs


【解决方案1】:

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

【讨论】:

  • 好吧,我认为我不能删除它:) 我怎样才能将 tableData 作为一个数组? ;)
  • tableData 是一个数组,但其中的第一项不是。你在做tableData.map( row =&gt; row.map( ... )) 这意味着每个row 也必须是一个数组。但是第一个row 是一个对象。我不能说如何将其更改为数组,因为我不知道它的用途。你为什么决定把它放在数组中?
  • 假设我正在从 firebase 数据库中检索用户名,我想将它们全部放到表中并使其可点击以检索点击的用户数据,我已经读过将数据放入数组是最好的选择那 :) 顺便感谢您的宝贵时间
  • 试试这个:而不是var tableData = [{name: this.state.users}],只写var tableData = []。现在渲染了吗?有什么遗漏吗?
  • 显示用户名,但只在一个 cel 中,而且数据库中有 4 个,而 app 只显示 3 个,所以缺少一个
【解决方案2】:

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

其次,length有错别字

for(var x = 1; x <= this.state.users.length; x++) {

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2020-06-12
      • 2018-12-22
      • 1970-01-01
      • 2023-02-23
      • 2020-09-06
      • 2021-10-24
      • 2023-01-09
      • 2015-01-21
      • 2017-11-26
      相关资源
      最近更新 更多