tdesign-react icon indicating copy to clipboard operation
tdesign-react copied to clipboard

[Cascader] options 传入 相反的 value 选项时候,出现冲突,交互异常

Open DevQiao opened this issue 1 year ago • 4 comments

tdesign-react 版本

1.5.3 以上 应该一直有问题

重现链接

https://stackblitz.com/edit/jmcnsivb?file=src%2Fdemo.tsx

重现步骤

[ { label: '选项一', value: '1', children: [ { label: '子选项一', value: '1.1', }, { label: '子选项二', value: '1.2', }, ], }, { label: '子选项一', value: '1.1', children: [ { label: '选项一', value: '1', }, ], }, ]

这个 options 数组的结构,选项一是父级,子选项一是子级

同时存在一个 选项一是子级,子选项一是父级

这种情况下 交互异常,核心原因 valueType="full" 时,选出的数组 没有按序判断,只要存在 value 数组的值 都会被选中,忽略了父子级关系

期望结果

按父子级序,设定最终选中的值

实际结果

交互异常,组件选中值冲突

框架版本

No response

浏览器版本

No response

系统版本

No response

Node版本

No response

补充说明

级联组件应该有层级关系,这是组件的基本属性,如果选中值失去层级关系,这个意义在哪里? 基础问题,请尽快fix

DevQiao avatar Jan 24 '25 08:01 DevQiao

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

github-actions[bot] avatar Jan 24 '25 08:01 github-actions[bot]

不是相反的选项的原因 是存在相同value的原因 目前的设计 不在同一级也不允许

uyarn avatar Jan 26 '25 03:01 uyarn

可能我表述的不够清晰,相同value导致问题我已悉知

但作为有层级属性的级联组件,[value1,value2] 和 [value2,value1] 导致组建逻辑错误 这是一个bug

对于该issue,我认为应该加入对数组这种有序数据结构的考量,而不是只要数组里有这个值,即认为被选中

在业务方向,通过后台配置下发options的case,约束用户自发配置,从而保障唯一value,会引入额外冗余逻辑

如果官方认为这没问题,我将在节后补充Ant Design和字节对应组件库的效果

DevQiao avatar Jan 28 '25 18:01 DevQiao

已沟通 [value1, value2] 和 [value2, value1] 在 valueType=full 场景下可以组成唯一key 需要支持

uyarn avatar Feb 05 '25 09:02 uyarn