随用随记
- 1、项目需要,使用antd的tree功能开发过程中,需要对treenode进行编辑,上移,下移等操作。
其他的功能btn,可以用e.stopPropagation()来阻止冒泡。但是input就不行了
treenode的select功能开启,点击treenode来切换右侧展示数据,所以没办法关闭
input虽然可以autofocus,但是如果文字输入缺失等情况,需要用鼠标点击一次,点击的时候也会触发select操作- 又不能阻止冒泡,所以,曲线救国。
antd
的tree
中onSelect
事件是支持两个回参keys
和event
(此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-dialog
是7.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>