我想在fields
函数中使用map()
,但我得到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>
)
}
}
我非常感谢所有的帮助。
答案 0 :(得分:3)
它给你错误,因为第一次渲染时它无法找到fields属性。尝试使用三元运算符放置条件。
{
this.props.schema.fields
?
... Map function
: <div></div>
}
答案 1 :(得分:0)
我用另一个名为mxswa:ActivityReference
的常量覆盖了我的第一个常量schema
。对不起,误会了!