TypeError:无法读取undefined |的属性ReactJS

时间:2017-07-09 17:24:59

标签: reactjs

我想在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>
    )
  }
}

我非常感谢所有的帮助。

2 个答案:

答案 0 :(得分:3)

它给你错误,因为第一次渲染时它无法找到fields属性。尝试使用三元运算符放置条件。

{
  this.props.schema.fields
       ?
        ... Map function 
       : <div></div>
} 

答案 1 :(得分:0)

我用另一个名为mxswa:ActivityReference的常量覆盖了我的第一个常量schema。对不起,误会了!