У меня есть компонент Parent, который отображает большую форму.Родительский компонент имеет презентационные дочерние компоненты Child1 - Child4, которые отображают входные данные.
Когда изменяется Parent.props, значения Child1 - Child4 должны быть сброшены по умолчанию из реквизитов.У пользователя должна быть возможность изменять значение ChildN родительским методом.
Мне нужно что-то вроде componentWillReceiveProps, чтобы вычислять новый Parent.state в зависимости от Parent.props, только когда он изменяется.
IЯ не могу использовать getDerivedStateFromProps, потому что мне нужен доступ к старым реквизитам и новым.getDerivedStateFromProps предоставляют доступ только к новым реквизитам.Я не хочу использовать componentWillReceiveProps.
class Parent extends Component {
state = {
value: Object.assign({}, this.props.value)
};
handleInputChange(event) {
this.setState({
value: event.currentTarget.value
});
}
render() {
return (
<Child
onChange={this.handleInputChange.bind(this)}
value={this.state.value}/>
)
}}class Child extends Component {
render() {
return (
<input type="text"
name="input"
value={this.props.value}
onChange={this.props.onChange.bind(this)}
/>
)
}}