如何不将点击事件传递给孩子反应?

编码器

我用material-ui.

在此代码https://codesandbox.io/s/y4jwv4ry1

  1. 我有一个SimplePopper渲染 Toggle 的父组件Button它被包裹在一个Popper.

  2. divSimplePopper可点击(我不能这个点击事件传递给Botton在我写我不应该修改现有代码的实际代码堂妹)

  3. 进入应用层面:

    一种。我有一个切换按钮,如果我点击它,我会得到日志“父按钮”。

    如果我将鼠标悬停在“切换”按钮上,则会得到 Popper。

  4. 由于我的 onClick 已经在 parent 的根上SimplePopper,如果我在 Popper 内的任何地方单击,它将触发 parent click 事件。如何通过单击子项来防止触发父项中存在的任何事件?

请在此处查看代码https://codesandbox.io/s/y4jwv4ry1

贾亚维尔

你需要做两件事:

SimplePopper组件中:

<div 
     onClick={this.handleClickButton} 
     ref={(node) => { this.parentNode = node }}> //added ref
            <PopperExample>
                <Button>Toggle</Button>
            </PopperExample>
</div>

并在handleClickButton

handleClickButton = e => {
    if (this.parentNode !== null && this.parentNode !== undefined) {
        this.parentNode.contains(e.target) && console.log('parent Button');
    }
};

如果 this.parentNode 包含正确的目标,函数将被执行。

并在PopperExample

handleButtonPopperClick = e => {
    e.preventDefault();
    e.stopPropagation();
    this.setState(state => ({
        showDiv: true
    }));
};

工作演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将事件传递给LitElement中的孩子

来自分类Dev

反应redux将状态传递给孩子

来自分类Dev

如何将额外的参数传递给点击事件?

来自分类Dev

如何将点击事件传递给 RecyclerView 的项目?

来自分类Dev

将Click事件传递给孩子

来自分类Dev

使用.trigger将事件传递给孩子

来自分类Dev

如何不触发儿童点击事件

来自分类Dev

如何将点击处理程序从父母正确地传递给孩子?

来自分类Dev

如何不将(鼠标悬停)传递给子代,而是在父代占用的整个空间上保持功能可用?

来自分类Dev

如何在Polymer.dart中监听从父母传递给孩子的事件

来自分类Dev

如何不将页眉和页脚传递到每个页面

来自分类Dev

让孩子与父母的点击事件

来自分类Dev

如何将事件和其他参数传递给点击处理程序

来自分类Dev

如何将点击事件传递给另一个按钮并触发弹出窗口

来自分类Dev

反应传递属性给孩子

来自分类Dev

将点击事件传递给下面的元素

来自分类Dev

将点击事件传递给下面的元素

来自分类Dev

Reactjs - 将点击事件传递给父级

来自分类Dev

有选择地做出反应,不将新道具传递给渲染对象

来自分类Dev

当孩子被点击时触发父点击事件

来自分类Dev

如何将价值从Boostrap模态孩子传递给父母?

来自分类Dev

如何通过钩子将状态从孩子传递给父母

来自分类Dev

如何使用redux将动作传递给孩子?

来自分类Dev

如何将服务从孩子传递给父母?

来自分类Dev

如何将孩子传递给class nextjs?

来自分类Dev

如何将变量从孩子传递给父母

来自分类Dev

bash如何将用户组传递给孩子?

来自分类Dev

如何将回调传递给孩子而不触发它

来自分类Dev

反应本地-将导航道具从父母传递给孩子

Related 相关文章

热门标签

归档