TypeError:无法读取未定义的属性|ReactJS
2017-07-09
826
我想在
map()
函数中使用
fields
,但是我得到了这个
TypeError: Cannot read property 'fields' of undefined
,我不明白为什么。因为当我
console.log(this.props.schema.fields)
时,我的控制台中打印出了数据。
问题
为什么会发生这种情况?是因为
return()
内部有另一个作用域吗?还是什么……?
export default class ObjectDisplay extends Component {
render() {
console.log(this.props.schema.fields)
//const { parentDocumentId, value, open, schema } = this.props
return (
<table>
<tbody>
{this.props.schema.fields.map((schema, i) =>
<ObjectKeyDisplay
key={i}
schema={schema}
value={(this.props.value || {})[schema.name]}
parentDocumentId={this.props.parentDocumentId}
/>
)}
</tbody>
</table>
)
}
}
我非常感谢大家的帮助。
2个回答
它给出错误是因为第一次渲染时无法找到字段属性。尝试使用三元运算符设置条件。
{
this.props.schema.fields
?
... Map function
: <div></div>
}
sohamdodia
2017-07-09
我用另一个名为
schema
的常量覆盖了我的第一个常量
schema
。抱歉造成误解!
Martin Nordström
2017-07-10