首页 > 其他分享 >react中事件冒泡导致弹窗关不掉

react中事件冒泡导致弹窗关不掉

时间:2024-05-06 14:24:06浏览次数:24  
标签:false 关不掉 setDeleteAutomatedReportModalVisible react 冒泡 onClick 组件 弹窗

代码如下

     <Modal
        actions={[
          {
            text: 'Cancel',
            variant: 'secondary',
            onClick: () => setDeleteAutomatedReportModalVisible(false),
          },
      />

点击Cancel按钮,弹窗应该关闭才对,但是并没有生效,在onClick中打印信息也能打印出来。最后发现弹窗外面的父组件也有一个onClick方法onClick: () => setDeleteAutomatedReportModalVisible(true),这样就导致点击Cancel按钮时触发了事件冒泡,父组件中的onClick事件也被触发了,值一直为true,所以弹窗一直显示。解决方法,只需要在子组件的onClick方法加上stopPropagation()。

    <Modal
        actions={[
          {
            text: 'Cancel',
            variant: 'secondary',
            onClick: (e) => {
              e.stopPropagation()
              setDeleteAutomatedReportModalVisible(false)
            },
          },
      />

 

标签:false,关不掉,setDeleteAutomatedReportModalVisible,react,冒泡,onClick,组件,弹窗
From: https://www.cnblogs.com/panglinglong/p/18174945

相关文章

  • React入门
    React极简入门:从JavaScript到React-知乎(zhihu.com) HTML<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>Mytestpage</title></head><body><h1>这是标题一</h1>......
  • 为什么我不选择React、Vue.js作为SAAS网站的前端框架
    引言“道”在中国哲学中,是一个重要的概念,表示“终极真理”。“道”这一概念,不单为哲学流派诸子百家所重视,也被宗教流派道教等所使用。大道至简的意思就是大道理是极其简单的,简单到一两句话就能说明白。所谓“真传一句话,假传万卷书”。正文在开启独立创作之路时,我也考虑过各种......
  • REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS
    发表时间:2023(ICLR2023)文章要点:文章提出一个简单有效的ReAct框架,将reasoning和action结合,在交互式的环境上进行测试,取得了很好的效果。其中reasoning作为推理模块,帮助模型归纳,跟踪和更新动作规划,acting和环境交互收集更多信息(reasoningtraceshelpthemodelinduce,track,a......
  • 以React16.4为界限,比较生命周期的异同
    一、整体流程简介:新版:旧版:二、比较通过两个图的对比,可以发现:1.生命周期都包含创建、更新、销毁;2.新版本减少了以下三种方法:componentWillMountcomponentWillReceivePropscomponentWillUpdate其实这三个方法仍然存在,只是在前者加上了UNSAFE_前缀,如UNSAFE_componentW......
  • 如何处理 alert 弹窗?
    alert弹窗是一种JavaScript生成的对话框,用于显示一些信息或警告。seleniumWebDriver提供了switchto.alert方法,可以切换到alert弹窗,并进行以下操作:text属性:获取alert弹窗的文本内容,accept方法:点击alert弹窗的确定按钮,dismiss方法:点击alert弹窗的取消按钮,se......
  • react中什么使用定义变量,需要使用useRef,什么时候直接定义即可?
    在React中,决定使用useState、useRef或是直接定义变量,主要取决于你希望变量如何与组件的渲染周期互动以及是否需要持久化某些值。直接定义变量场景:如果你只是需要一个在函数内部临时存储数据的变量,而且这个变量的值不需要在组件重新渲染时保持不变,或者它并不直接影响UI的渲染逻......
  • react中如何区分什么场景下应该使用useEffect,什么场景下应该使用发布订阅模式,进行通信
    在React中,useEffect和发布订阅模式(Pub/Sub)解决的是不同层面的问题,因此它们的使用场景也有所不同。useEffect的使用场景数据获取:当组件挂载后需要从服务器获取数据时,可以使用useEffect。同时,当依赖项发生变化时,它也能帮助重新获取数据。副作用处理:任何需要在渲染之外进行的......
  • react diff算法和vue的区别
    区别相同点都是两组虚拟dom的对比(react16.8之后是fiber与虚拟dom的对比)只对同级节点进行对比,简化了算法复杂度都用key做为唯一标识,进行查找,只有key和标签类型相同时才会复用老节点遍历前都会根据老的节点构建一个map,方便根据key快速查找不同点react在diff遍历的时候,......
  • react 初学遇到的问题
    1.useEffect依赖项变化时并没有执行源码useEffect(()=>{constselectedComp=selects.find(select=>select.value===selected);selectedComp&&setSelectedComp(selectedComp);},[selected,selects,selectedComp]);分析从提供的代码片段来看,这一行代码......
  • 升级next@13 react@18 chakra-ui@2
    一、升级步骤1、本地node建议升级到v20(next@13要求node@18,react@18、react-dom@18、chakra-ui@2)2、支持渐进式升级next13,升级的项目需按next官方添加环境变量NEXT_PUBLIC_NEXT13,请devops帮忙Dockerfile构建时添加.env文件到pod中Openimage-20240111-081926.png3......