我有以下点击处理程序:
<Select
name="batchCompChooser"
value={this.state.batchCompId}
options={batchCompItems}
clearable={false}
onChange={this.handleBatchCompChange()}
/>
但是,我从onChange行得到以下错误:
BatchComponentChooser.js?0aaf:54 Uncaught TypeError: Cannot read property 'value' of undefined
我该如何解决这个问题?
答案 0 :(得分:1)
如果你有一个事件处理程序,比如onClick,很容易意外地执行此操作:
onClick={this.someFunc()}
删除parens()
这实际上会在渲染时立即调用该函数。
相反,您希望将引用传递给这样的函数:
onClick={this.someFunc}
所以在我的情况下它应该是这样的:
<a onClick={this.doSomething}>Do something link</a>
如果您需要传递参数,可以使用箭头功能执行此操作:
<a onClick={() =>this.doSomething(true)}>Do something link</a>
特别是在上面的示例中,onChange应该删除尾随的parens,它应该更改为:
<Select
name="batchCompChooser"
value={this.state.batchCompId}
options={batchCompItems}
clearable={false}
onChange={this.handleBatchCompChange}
/>
希望能帮助那些人......