Props 非空检测
对于并非 isRequired
的 proptype,必须对应设置 defaultProps,避免再增加 if 分支带来的负担
// bad
render () {
if (this.props.person) {
return <div>{this.props.person.firstName}</div>
} else {
return <div>Guest</div>
}
}
// good
class MyComponent extends Component {
render() {
return <div>{this.props.person.firstName}</div>
}
}
MyComponent.defaultProps = {
person: {
firstName: 'Guest'
}
}
如有必要,使用 PropTypes.shape 明确指定需要的属性