所以我无法设置从该DatePicker中选择的日期的状态
更改:
change = (e) => {
this.setState({
[e.target.name]: e.target.value,
});
};
DatePicker组件:
<DatePicker
selected={this.state.startDate}
onChange={e => this.change(e)}
/>
如果我在第一次重新加载页面时使用默认日期,则没有问题。但是,当选择日期时,我得到了一个错误。
类型错误:无法读取未定义的属性“名称”。
我在做什么错了?
答案 0 :(得分:0)
已合并SyntheticEvent。这意味着在调用事件回调之后,将重新使用SyntheticEvent对象,并且所有属性都将无效。这是出于性能原因。因此,您不能以异步方式访问事件。
更多信息here。
由于setState
是异步的,因此event
在null
中求值时将是setState
。
相反,请在event
之前解构setState
:
change = ({ target: { name, value } }) => {
this.setState({
[name]: value,
});
}
或
change = e => {
const { name, value } = e.target;
this.setState({
[name]: value,
});
}