在Firefly example project中,defaultValue
组件中有以下PostForm
行:
<Input
type="text"
name="title"
defaultValue={this.props.post.title || ''}
required
/>
当父组件未传递任何道具时,渲染此组件时出现错误
TypeError: Cannot read property 'title' of undefined
当另一个组件通过post
道具时就可以了。为什么
|| ''
在没有道具通过的情况下无法工作吗?
答案 0 :(得分:3)
这是因为如果您不将post
作为undefined
进行传递,那么在执行this.props.post.title
时会引起错误。
您还需要检查post
中是否还存在props
:
<Input
type="text"
name="title"
defaultValue={this.props.post && this.props.post.title || ''}
required
/>