我有创建反应表的问题,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不是功能“我该如何解决?谢谢:))
答案 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)
。