【发布时间】:2019-01-29 10:51:43
【问题描述】:
使用getDerivedStateFromProps 时输入onChange 不更新状态。在我将道具从父母传递给孩子之后,我正在检查来自子组件的getDerivedStateFromProps。完整演示 - https://codesandbox.io/s/011m5jwyjw
class Form extends React.Component {
constructor(props) {
super(props);
this.state = {
form: {}
};
}
static getDerivedStateFromProps(nextProps, prevState) {
if (nextProps.user) {
return { form: nextProps.user };
}
return {
...prevState
};
}
inputHandle(e) {
this.setState(prevState => ({
...prevState,
form: {
firstname: e.target.value
}
}));
}
render() {
return (
<input
type="text"
name="firstname"
value={this.state.form.firstname}
onChange={e => this.inputHandle(e)}
/>
);
}
}
【问题讨论】:
-
“不工作”不是正确的问题描述。请解释正在发生的事情以及您期望发生的事情
-
另外,请注意,您可能甚至不应该使用该方法:reactjs.org/blog/2018/06/07/…
-
另外注意:状态更新总是部分的,而不是完整的,所以不需要返回
prevState。
标签: javascript reactjs