反应:组件属性“ {Prop or none””

时间:2018-06-26 18:21:36

标签: javascript reactjs

Firefly example project中,defaultValue组件中有以下PostForm行:

<Input
  type="text"
  name="title"
  defaultValue={this.props.post.title || ''}
  required
/>

当父组件未传递任何道具时,渲染此组件时出现错误

TypeError: Cannot read property 'title' of undefined

当另一个组件通过post道具时就可以了。为什么

|| ''

在没有道具通过的情况下无法工作吗?

1 个答案:

答案 0 :(得分:3)

这是因为如果您不将post作为undefined进行传递,那么在执行this.props.post.title时会引起错误。

您还需要检查post中是否还存在props

<Input
  type="text"
  name="title"
  defaultValue={this.props.post && this.props.post.title || ''}
  required
/>