antd中踩坑相关记录

随用随记

  • 1、项目需要,使用antd的tree功能开发过程中,需要对treenode进行编辑,上移,下移等操作。
    其他的功能btn,可以用e.stopPropagation()来阻止冒泡。但是input就不行了
    treenode的select功能开启,点击treenode来切换右侧展示数据,所以没办法关闭
    input虽然可以autofocus,但是如果文字输入缺失等情况,需要用鼠标点击一次,点击的时候也会触发select操作
    • 又不能阻止冒泡,所以,曲线救国。
      antdtreeonSelect事件是支持两个回参keysevent(此event似乎被封装过)
      所以onSelect事件里处理一下
      onSelect = (keys,eve)=>{
            const eleName = eve.nativeEvent.toElement.localName; //localName 就是触发点击的dom元素
            if(eleName  !== 'input'){
                  //非编辑的input时,正常的逻辑
            }else{
                  //什么都不做。或者还原?
            }
      }

项目比较急,暂时只能以此方案解决。

  • 2、Modal不刷新的问题(使用destroyOnClose解决)
    modal是一个checkbox操作,用了forceRender也不能强制刷新,antd版本^3.25.0,antd中用的rc-dialog7.6.1
    查了文档,说是rc-dialog 7.2.1(大概这个数)之后的这个forceRender是可以的,但是我这边没起作用。

    js {ifShow ? <Modal visible={ifShow}></Modal> : null}
    也无果,主要是有时候render刷新问题,Modal的背景出来了,但是modal本身还是display:none;
    最后发现 destroyOnClose可以
     <Modal visible={ifShow} destroyOnClose></Modal>
当你终于脱胎换骨,一定会感谢曾经的孤独。
原文地址:https://www.cnblogs.com/zdzx939/p/14374771.html