私はおそらく何か愚かなことをしていますが、私は動作するようにdefaultPropsを得ることができません。React defaultProps not working
export default class MyClass extends Component{
static propTypes = {
name: React.PropTypes.string.isRequired,
field: React.PropTypes.object.isRequired
}
static defaultProps = {
field: { value: '', errors: [] }
}
render() {
// blah blah
}
}
私はthis.props.field.value
とthis.props.field.errors.length
に依存し、すべての私のテストはTypeError: 'undefined' is not an object (evaluating 'this.props.field.errors.length')
で爆破されたコードを持っているが、私のデフォルトの小道具はそれをデフォルト値を与えるべきではないのですか?当初、私のfield
小道具は空のオブジェクトです。
RTFMをもう少し慎重にする必要がありますが、私のアプローチを再考する必要があります。 – Lee
これは重要なポイントです。「デフォルトの小道具は小道具に値が渡されない場合にのみ使用され、浅いマージであり深いマージではありません」 – Wayou
リンクの参照が古くなっているようです。代わりにこのページを参照してください。 https://reactjs.org/docs/react-without-es6.html#declaring-default-props –