【发布时间】:2018-07-27 11:36:45
【问题描述】:
这两个函数的主要区别是什么?
handleOnChange(evt) {
this.setState(() => ({
tickerName: evt.target.value
}));
}
handleOnChange(evt) {
this.setState({ tickerName: evt.target.value });
}
为什么使用直接更改状态的 handleOnChange() 函数可以正常工作?
<input
type="text"
value={this.state.tickerName}
onChange={(evt) => this.handleOnChange(evt)}
/>
当我使用第一个通过回调更改状态的函数时,我收到此错误:
TypeError: evt.target is null
【问题讨论】:
-
有关 setState 的更多详细信息,请查看DOC,当下一个状态值依赖于先前的状态值时需要更新函数,而在您的情况下则不是。