Tencent / tdesign-vue-next

A Vue3.x UI components lib for TDesign.
https://tdesign.tencent.com/vue-next
MIT License
1.46k stars 472 forks source link

[Tree] 执行节点的setItem方法改变checked的时候会陷入死循环,提示异常:RangeError: Maximum call stack size exceeded。 #4415

Open yuliezhou opened 3 months ago

yuliezhou commented 3 months ago

tdesign-vue-next 版本

1.9.4

重现链接

https://tdesign.tencent.com/vue-next/components/tree?tab=demo

重现步骤

const onChange = (e: any, node: any) => { console.log(node.node); console.log(tagTreeRef.value.setItem); tagTreeRef.value.setItem(node.node.value, { checked: false }) } console会一直输出

期望结果

No response

实际结果

No response

框架版本

No response

浏览器版本

No response

系统版本

No response

Node版本

No response

补充说明

No response

github-actions[bot] commented 3 months ago

👋 @yuliezhou,感谢给 TDesign 提出了 issue。 请根据 issue 模版确保背景信息的完善,我们将调查并尽快回复你。

yuliezhou commented 3 months ago

onchange事件的时候

uyarn commented 3 months ago

在onChange里手动改变节点的checked?是什么场景需要这样使用呢

yuliezhou commented 3 months ago

在onChange里手动改变节点的勾选了?有哪些场景需要这样使用呢? 想限制tree选中的数量,貌似没有一个很好的解决方案。想到的就是在onChange事件中达到了限制条件,将其余的选项设置为disabled:false,貌似也不生效。后面就想到手将checked改为false,提示用户不能再继续选择。 @uyarn