Javascript 如何为react中的两个或多个事件添加一个事件侦听器

Javascript 如何为react中的两个或多个事件添加一个事件侦听器,javascript,reactjs,Javascript,Reactjs,在这种情况下,我有两个事件,比如onClick和onSelect,这两个事件都有相同的事件处理程序。我想知道在这些情况下编写的最佳方式是什么,我们是否应该编写一个通用方法,然后根据事件类型调用事件处理程序,或者在事件处理程序相同的情况下可以使用一些语法只想在可能的情况下节省少量代码。< /强>也请考虑一个情况,我有四个事件和所有的事件处理程序。 <HAComboLink label= {toI18Text(intl, "edit")} value="edit" onClic

在这种情况下,我有两个事件,比如onClick和onSelect,这两个事件都有相同的事件处理程序。我想知道在这些情况下编写的最佳方式是什么,我们是否应该编写一个通用方法,然后根据事件类型调用事件处理程序,或者在事件处理程序相同的情况下可以使用一些语法<强>只想在可能的情况下节省少量代码。< /强>也请考虑一个情况,我有四个事件和所有的事件处理程序。
<HAComboLink 
  label= {toI18Text(intl, "edit")}
  value="edit" 
  onClick={onEditCustomFieldClick(id)} 
  onSelect={onEditCustomFieldClick(id)} 
  id="edit"
>
  <HAItem id="makeInactive" value="active" tabIndex="0">
    {toI18Text(intl, "make.inactive.label")}
  </HAItem>
</HAComboLink>

{toI18Text(intl,“make.inactive.label”)}

我经常看到的一种模式是在每个单独的事件处理程序函数中调用“公共”处理程序

<Component onBlur={this.handleBlur} onInput={this.handleInput}  />

handleBlur = event => this.emitChange(event)

handleInput = event => this.emitChange(event)

emitChange = event => //do some common task

handleBlur=event=>this.emitChange(事件)
handleInput=event=>this.emitChange(事件)
emitChange=event=>//执行一些常见任务

我经常看到的一种模式是在每个单独的事件处理程序函数中调用“公共”处理程序

<Component onBlur={this.handleBlur} onInput={this.handleInput}  />

handleBlur = event => this.emitChange(event)

handleInput = event => this.emitChange(event)

emitChange = event => //do some common task

handleBlur=event=>this.emitChange(事件)
handleInput=event=>this.emitChange(事件)
emitChange=event=>//执行一些常见任务

不太可行。即使您有某种全局侦听器,也只会在代码中添加更多行,而不会保存任何行。是的,没错:)如果行对您来说真的很重要,我唯一能想到的就是让一个函数调用您的函数。所以类似于
onClick={x(id)}onSelect={x(id)}
然后调用
x()
call
onEditCustomFieldClick(id)
。。。。但是呃。。。似乎没有必要?无论如何,这将由构建工具完成,不是吗?我只是想问问社区,我们是否有更有效的方法来做这件事。这并不可行。即使您有某种全局侦听器,也只会在代码中添加更多行,而不会保存任何行。是的,没错:)如果行对您来说真的很重要,我唯一能想到的就是让一个函数调用您的函数。所以类似于
onClick={x(id)}onSelect={x(id)}
然后调用
x()
call
onEditCustomFieldClick(id)
。。。。但是呃。。。似乎没有必要?无论如何,这将由构建工具完成,不是吗?我只是想问问社区,我们是否有更有效的方法。