项目背景: 在antd pro react下,我们想用antv charts做了一个报表的树形结构图,但是因为子节点太多了,我们想进页面的时候,只展开三级,用户自己点开后面的。
如图:
首先遇到几个问题,
1、当我默认展开三级时,我需要用代码去判断其是否还有子节点,如果有子节点就展示展开按钮,没有子节点就不展示,如上图红绿框所示。
但api里面写的collapsed不是展开搜索节点,而是控制那个展开收缩按钮的,就是那个小圆点。气得我、、、
2.综合1的问题,只能通过show来控制了,这样,但这个又有一个问题就是,在markerCfg里面没法得到我处理好的末尾节点的数据,导致我无法判断。
最后去看issues的时候,有大佬说把 末尾节点用useRef转存一下,
也就是说:
const edgeDataRef = useRef(null);
edgeDataRef.current = edgeData;
然后再在markerCfg里获取就可以了
这是我解决的办法,如果有更好的,请告诉我,谢谢
毕竟这个办法我调试了好久才找到。