ant-design Tree树形控件,通过expandedKeys控制收缩或折叠失效
一、概述
Ant Design的树形组件Tree,通过属性expandedKeys手动控制组件的展开和收缩时,点击节点后更新expandedKeys属性值可以正常展开,再点击左侧三角形小图标时(onExpand)却不能收缩了。
二、问题分析
a. 根据以往经验,出现keys的问题,一般是由key的数据重复或类型(尤其 Number 和 String 混用)不统一造成的。
b. 官方给出的方法钩子是异步的,造成钩子函数里的数据操作受影响(要么在拿到预期值之前就赋值,要么赋值之后还没更新完视图再次被更新)。这时,就要确保预期值的实时更新。
很显然,a选项很容易排查,本人经历的bug也不是a选项造成。那么,b选项该怎么解决? 如下图:
动态控制展开与收缩的钩子函数
虽然赋值的数据是一样的,但是只有采用后者的处理方式才可以解决该问题! ^_^