React Error:在现有状态转换期间无法更新

时间:2016-07-13 21:01:57

标签: reactjs onclick ecmascript-6

我有以下点击处理程序:

<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

我该如何解决这个问题?

1 个答案:

答案 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}
/>

希望能帮助那些人......