У меня есть следующий, супер-простой Компонент:
export default class Editor extends Component {
constructor(props) {
super(props);
this.state = { field: "Some Initial Text" };
this.handleChangeField = this.handleChangeField.bind(this);
}
handleChangeField(e) {
this.setState({field: e.target.value});
}
render() {
return (
<div>
<input type="text" name="word" value={this.state.field} onChange={this.handleChangeField} />
{this.state.field}
</div>
);
}
}
У него просто есть поле.Поле может быть отредактировано пользователем.В зависимости от того, что пользователь нажимает в одноуровневом компоненте, вышеупомянутый компонент получит реквизит с именем fieldValue
, который будет отображаться в поле ввода.Поскольку пользователь должен иметь возможность редактировать это поле ввода, я не могу просто поместить реквизит непосредственно в поле ввода, а использовать состояние.Поэтому я инициализирую состояние компонентов из реквизита.
Однако этот реквизит может измениться даже после инициализации компонента.То есть будет не только начальным значением , но и может меняться во время выполнения, в зависимости от того, на что пользователь нажимает в компонентах sibling.
Как бы я решил что-то подобноев Реакте 16.3 с ComponentWillReceiveProps
устарела?Я попытался изучить GetDerivedStateFromProps
, но не до конца понимаю, как его использовать.