[Cascader] options 传入 相反的 value 选项时候,出现冲突,交互异常
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,感谢给 TDesign 提出了 issue。 请根据 issue 模版确保背景信息的完善,我们将调查并尽快回复你。
不是相反的选项的原因 是存在相同value的原因 目前的设计 不在同一级也不允许
可能我表述的不够清晰,相同value导致问题我已悉知
但作为有层级属性的级联组件,[value1,value2] 和 [value2,value1] 导致组建逻辑错误 这是一个bug
对于该issue,我认为应该加入对数组这种有序数据结构的考量,而不是只要数组里有这个值,即认为被选中
在业务方向,通过后台配置下发options的case,约束用户自发配置,从而保障唯一value,会引入额外冗余逻辑
如果官方认为这没问题,我将在节后补充Ant Design和字节对应组件库的效果
已沟通 [value1, value2] 和 [value2, value1] 在 valueType=full 场景下可以组成唯一key 需要支持