【发布时间】:2016-02-29 09:55:57
【问题描述】:
我有一个包装按钮的第三方组件:
<ExtComponent> <!-- this component has it's own internal onClick handler -->
<button />
</ExtComponent>
该组件有一个内部onClick 事件处理程序,它优先于我尝试添加到<button> 的任何onClick。所以当我这样做时
<ExtComponent> <!-- this component has it's own internal onClick handler -->
<button onClick={this.onClick} /> <!-- this is not being triggered as ExtComponent onClick is being called instead -->
</ExtComponent>
我的组件 onClick 没有被调用。
有没有办法先处理子组件(按钮)onClick,然后继续(或不)到ExtComponent onClick?
(假设我可以更改第 3 方组件(我可以分叉并更改它))
【问题讨论】:
-
不清楚你在问什么。单击按钮会调用错误的处理程序,还是根本不触发?你能提供一个组件渲染后 HTML 的示例吗?
-
@DanPrince 这是一个比较笼统的问题,我更新了这个问题更清楚
-
我知道,但即使在一般情况下,React 组件也不能拥有响应点击的事件处理程序,因为它们不会呈现到 DOM 中。内部点击处理程序附加到哪个元素,它与按钮之间的层次关系是什么?
-
@DanPrince
ExtComponent最终被渲染成带有onClick处理程序的<div>,该处理程序打开某种对话框。我想根据某些道具有条件地打开该对话框,但由于我无法访问我要询问的那个元素
标签: javascript reactjs