1

我有一个组件,当您单击它的任何位置时,它会执行一个操作,除非您单击某些具有自己的onClick处理程序的子组件。这些onClick处理程序能够通过调用来阻止其父级执行其标准操作e.stopPropagation。我如何类似地捕获组件的stopPropagation()事件?普通处理程序永远不会被调用。ReactSelectonClickonClick

这基本上是所描述的设置(ES6):

handleMost = e => { 
  // Note that I cannot check e.target here, because there is a bunch
  // of other stuff that might be the target that still should cause
  // the standard action to occur 
  doStandardThing();
}

handleFoo = e => { e.stopPropagation(); doSomethingFoo(); }}
handleBar = e => { e.stopPropagation(); doSomethingBar(); }}
handleBaz = e => { e.stopPropagation(); doSomethingBaz(); }}

<ListItem onClick={handleMost}>
  <Foo onClick={handleFoo}
  <Bar onClick={handleBar}
  <ReactSelect ?????={handleBaz}

  <OtherStuff ...>
</ListItem>
4

1 回答 1

5

我查看了 react-select 中的所有事件,但似乎不符合您的目的。

我想作为一种解决方法,您可以尝试将ReactSelect组件包装在另一个元素中。

<span onClick={e => ....}>
  <ReactSelect />
</span>
于 2016-11-18T19:11:41.033 回答