IDuxFE / idux

🚀 A UI Component Library for Vue3.x
https://idux.site
MIT License
545 stars 141 forks source link

[IxCheckbox] 复选框下嵌套下拉多选组件时,点选下拉组件的非选择框区域,选择框的勾选状态不会发生改变。 #2003

Open Dreamer-Somebody opened 1 week ago

Dreamer-Somebody commented 1 week ago

Reproduction link

重现 link

Steps to reproduce

如上述复现链接,在下拉框内点选非选择框区域来进行选项的选择。 image

What is expected?

选择框的勾选状态能正常联动。

What is actually happening?

选择框的勾选状态没有联动。

Environment Info

Any additional comments? (optional)

Dreamer-Somebody commented 1 week ago

问题原因是packages/components/checkbox/src/Checkbox.tsx第 53 行,通过 inject 来判断当前的 checkbox 父组件是否是 checkboxGroup。 image

但如果任意一级的祖先组件是 checkboxGroup 就会导致 inject 有误,随后导致 180 行判断有误,accessor 从祖先级别的 checkboxGroup 获取,导致 此 bug。 image