【发布时间】:2018-10-03 09:13:24
【问题描述】:
无法访问 this.setState 中的 event 对象,因为我试图访问 this.setState 中的事件一回调。它会以Uncaught TypeError: Cannot read property 'value' of null 的形式抛出错误,有什么建议可以访问它吗?
注意:getReportType 在下拉菜单中的值被选中时被调用
以下是Class部分
getReportType(event) {
console.log(event.target.value) //MetricsByContent
this.setState(prevState => ({
metricsParams: {
...prevState.metricsParams,
reportType: event.target.value
}
}))
}
以下是render()部分
render() {
return (
<div
<select id="metricsDropDown" className="browser-default" onChange={this.getReportType}>
<option value="MetricsByContent">Metrics By Content</option>
<option value="MetricsByUser">Metrics By User</option>
</select>
</div>
)
}
【问题讨论】:
-
“无法访问事件对象” -> 这甚至意味着什么?您得到的确切错误是什么?
-
这个函数是怎么调用的?如果在函数内添加
console.log(event),event定义是否正确? -
@RamyaRamanathan:当然不是这里的问题。
event与this没有连接 -
最好的办法是创建
console.log(event)并查看其中包含哪些数据 -
由于
SyntheticEvent,解决方案是将值存储在变量中或使用event. persist()
标签: javascript reactjs