考虑某些组件的以下功能:
handleInputChange(e) {
// let val = e.target.value; - if I uncomment this, it works.
// Update text box value
this.setState(function (prevState, props) {
return {
searchValue: e.target.value,
}
})
}
以及输入,其由上述组件的子组件呈现,并且接收handleInputChange
作为props
:
<input type="text" onChange={that.props.handleInputChange} value={that.props.searchValue} />
当我在输入中输入一些东西时,我得到错误Cannot read property 'value' of null
。
如果我取消注解handleInputChange
函数中的第一行,我在val
变量中存储输入值,它工作得很好。
1条答案
按热度按时间fslejnso1#
这是因为react在版本17之前是做事件池的--回调完成后所有事件的字段都被置空,所以你在异步
setState
回调中看到它们是空的。请将事件数据复制到变量或调用
event.persist()
以禁用此行为。或者:
请参见以下示例:
一个二个一个一个