在jsx的属性中调用数组数组
calling array of arrays in jsx's attribute
我的代码如下
class Cell extends React.Component{
render(){
return (
<div className="cell" id={this.props.id}>{this.props.value}</div>
)
}
}
let table=[[1,2,3],[4,5,6],[7,8,9],[3,2,1],[6,5,4],[9,8,7],[1,5,8],[9,6,3],[2,4,7]];
class Row extends React.Component{
render(){
return(
<div className="row" id={this.props.id}>
{
_.map([...Array(9)],(x,i)=>
<Cell id={this.props.id+""+[i+1]} value={table[this.props.id][i]} key={i}/>
)
}
</div>
)
}
}
class Box extends React.Component{
render(){
return(
<div className="box">
{_.map([...Array(9)],(x,i)=>
<Row key={i} id={i+1}/>
)}
</div>
)
}
}
我想从数组 table
设置 <Cell/>
的属性 value
,我得到 Uncaught TypeError: Cannot read property '0' of undefined
我试图查看 lodash.js
文件,但并没有真正了解它的作用。谁能给我解释一下这是怎么回事?
编辑:更新代码
您似乎总是通过递增 1 来设置 id
:<Row key={i} id={i+1} />
并使用 id
作为 table
的索引。这样做的问题是,在最后一次迭代中,您将收到一个不存在的 table 元素的 table 索引。这是给你一个 undefined
对象。
我的代码如下
class Cell extends React.Component{
render(){
return (
<div className="cell" id={this.props.id}>{this.props.value}</div>
)
}
}
let table=[[1,2,3],[4,5,6],[7,8,9],[3,2,1],[6,5,4],[9,8,7],[1,5,8],[9,6,3],[2,4,7]];
class Row extends React.Component{
render(){
return(
<div className="row" id={this.props.id}>
{
_.map([...Array(9)],(x,i)=>
<Cell id={this.props.id+""+[i+1]} value={table[this.props.id][i]} key={i}/>
)
}
</div>
)
}
}
class Box extends React.Component{
render(){
return(
<div className="box">
{_.map([...Array(9)],(x,i)=>
<Row key={i} id={i+1}/>
)}
</div>
)
}
}
我想从数组 table
设置 <Cell/>
的属性 value
,我得到 Uncaught TypeError: Cannot read property '0' of undefined
我试图查看 lodash.js
文件,但并没有真正了解它的作用。谁能给我解释一下这是怎么回事?
编辑:更新代码
您似乎总是通过递增 1 来设置 id
:<Row key={i} id={i+1} />
并使用 id
作为 table
的索引。这样做的问题是,在最后一次迭代中,您将收到一个不存在的 table 元素的 table 索引。这是给你一个 undefined
对象。