Tencent / tdesign-vue-next

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

[TreeSelect] 绑定值改变后未触发onChange事件 #4310

Closed itvita closed 1 week ago

itvita commented 1 week ago

tdesign-vue-next 版本

^1.9.3

重现链接

No response

重现步骤

定义一个TreeSelect 通过定时器更新绑定值,没有触发change事件

<t-tree-select
          v-model="treeValue"
          :data="treeOptions"
          :clearable="true"
          :filterable="true"
          placeholder="-请选择-"
          @change="treeChange"
        />
setTimeout(() => {
    treeValue.value= "3333333333";
  }, 2000);

期望结果

不论以任何形式改变绑定值,都应该触发change事件

实际结果

只有选择操作的时候才会触发change事件,通过程序改变值时不会触发。

框架版本

Vue(3.3.13)

浏览器版本

No response

系统版本

Win10

Node版本

v20.12.2

补充说明

通过程序改变树形绑定值,且需要通过change事件获取该值的更多属性信息。

  try {
    const parentType = ctx.node.data.data.type;
    changeTypeOptions(parentType);
  } catch (e) {
    changeTypeOptions('');
  }
};
github-actions[bot] commented 1 week ago

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

uyarn commented 1 week ago

onchange事件无论是受控还是非受控都需要是组件行为产生了才可以触发,你提到的场景和组件没有行为关系,不触发onchange是合理的,触发了才更奇怪。你可以改成watch这个treeValue来做一些你需要的逻辑