如何在React中阻止子组件手势穿透父组件?

在嵌套组件中,子组件的点击事件会触发父组件的相同手势。例如,子组件是一个按钮,父组件是一个可点击的卡片,点击按钮时卡片的点击事件也会触发。如何实现仅子组件响应手势,阻止事件传递到父组件?

在嵌套组件中,子组件的点击事件会触发父组件的相同手势。例如,子组件是一个按钮,父组件是一个可点击的卡片,点击按钮时卡片的点击事件也会触发。如何实现仅子组件响应手势,阻止事件传递到父组件?

阅读 403
3 个回答

有两种方式:

  1. 使用 e.stopPropagation() 阻止事件冒泡。
  2. 使用 e.nativeEvent.stopImmediatePropagation()(极端情况)
const handleChildClick = (e) => {
   // 子事件点击之后的处理逻辑
   
    e.stopPropagation(); //  末尾加上,阻止事件冒泡
  };

DOM 的事件冒泡机制导致的。在子组件上侦听你不希望父组件触发的事件,并且使用 event.stopPropagation() 阻止冒泡即可。

阻止事件冒泡,event.stopPropagation()

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题