`this.props` внутри` getDefaultProps() `of React?
Я пытаюсь добавить опору, которая зависит от других реквизитов, которые будут в основном переданы компонентом владельца компонента.
Итак, я сделал:
propTypes: {
user: React.PropTypes.object,
comment: React.PropTypes.object
},
getDefaultProps: function() {
return {
admire: new Admire({
user: this.props.user,
comment:this.props.comment
})
};
}
Но похоже, что реквизиты user
и comment
недоступны при времени getDefaultProps
.
Есть ли способ определить опору по умолчанию, которая зависит от других реквизитов, которые будут переданы из компонентов владельца?
Ответы
Ответ 1
getDefaultProps вызывается до создания любых экземпляров и, следовательно, не может полагаться на this.props
. Это означало получить реквизиты по умолчанию, если владелец не передал их.
Альтернативным решением будет использование getInitialState
, поскольку это даст вам доступ к this.props.user
и this.props.comment
.
Ответ 2
На самом деле вы не должны модифицировать реквизиты, я уверен, что вы получите предупреждение о консоли.
Вы можете сохранить Admire
в состояние через функцию getInitialState
.
например.
propTypes: {
user: React.PropTypes.object,
comment: React.PropTypes.object
},
getInitialState: function() {
return {
admire: new Admire({
user: this.props.user,
comment: this.props.comment
});
};
}