如果我们需要动态往el-tree里面某一个节点添加子节点,追加或删除,我跟你讲,一定要显式地调用el-tree的方法,不然的话,后面调用setChecked这种方法看不到效果的。
比如el-tree绑定的data如下:
[{id:"1",label:"父1",children:[]}]
el-tree指定node-key='id', 然后在一个mounted之后的事件(比如某个按钮的点击事件)中往data的第一个元素的children里面添加一个node,新data如下:
[{id:"1",label:"父1",children:[id:"1-2",label:"子",children:[]]}]
这时候,如果你没有显示地调用el-tree的append方法的话,页面当中的el-tree仍然会正常地显示新加元素,于是我还以为好了呢。
但是我要是想添加新元素的同时给他设置checked状态,调用el-tree的setChecked方法,会发现新加元素的checked的设置死活不起效果。
通过调试源码,才发现,必须得显示调用append方法:
吐血啊,一定要记住啊,el-tree坑真多,关键是悄咪咪的坑, 不注意不知道。还以为好的呢。
在此记录,方便日后查阅。