【发布时间】:2018-12-28 00:01:50
【问题描述】:
我正在编写一些代码来基于数组中的项目生成 JSX,但是我收到错误“无法读取未定义的属性“长度””,尽管已检查该变量是否实际上未定义。代码真的很长,所以我把问题总结在这里:
render() {
var metadata = this.props.data["metadata"]
if(typeof metadata !== undefined && metadata.length !== undefined) {
for(var i=0; i<metadata.length; i++) {
console.log(metadata[i]);
}
}
}
render 方法在一个组件内部,通过这样做,它被放置在另一个组件内部
<Marksheet data={this.state.data} />
我已检查以确保数据已实际定义并作为道具提供,但即使它未定义,我也不明白为什么它说无法读取未定义的属性长度。
【问题讨论】:
-
!== 'undefined'->!== undefined -
您在
metadata .length中有一个空格,就在点之前...是复制粘贴错误吗? -
也可以简化为
if (metadata && metadata.length) { ... } -
@LGSon 空间问题,只要它实际上是一个空间。如果它是一个奇怪的 unicode 字符,那就有问题了。
-
@LGSon 点前的空格虽然可能是无意的,但不会对代码产生任何影响
标签: javascript reactjs