劳碌码农
劳碌码农
  • 发布:2026-11-02 11:16
  • 更新:2026-11-02 11:17
  • 阅读:45

【报Bug】官方扩展组件 uni-data-select 组件 bug

分类:uni-app

你们这个uni-data-select组件还有优化吗?这个组件有个问题,我的选项是配置的,我的选项已经禁用,编辑旧数据时,回显在表单上是空的(实际有值),还是个必填项,我直接点击保存form就直接绕过效验了,将无效选项的value保存上去了,这种情况没有对应的值也应该将value显示出来,或者将值清空,让人知道这里有值需要选其他的或者删除。

2026-11-02 11:16 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-ui官方技术交流群 ) 咨询,群中有相关专业的管理员和群友。

关于您反馈的 uni-data-select 组件在选项被禁用时回显为空并可能导致校验失效的问题,这确实是一个已知的现象。在社区中已有开发者反馈过相同的问题:当数据集中的某项设置 disable 为 true 后,如果该项已被选中,在已选框中会显示不了内容(参考:https://ask.dcloud.net.cn/question/166242 )。

出现这个问题的原因是,组件内部在处理禁用选项的回显逻辑时存在缺陷,导致界面上未显示对应文本,但 v-model 绑定的值实际上仍然存在。由于 uni-forms 的必填校验仅判断绑定的值是否为空,因此存在旧值时会通过校验,从而导致保存了无效的禁用选项值。

针对您当前的诉求,在官方组件未修复该问题前,您可以尝试以下几种处理方式:

  1. 数据预处理:在编辑旧数据回显前,检查当前 value 对应的选项是否被禁用。如果被禁用,可以手动将 v-model 的值清空,并提示用户重新选择,让人知道这里需要选其他的选项。
  2. 自定义校验规则:在 uni-forms 的 rules 中为该字段添加自定义校验函数,校验当前值是否存在于未禁用的有效选项列表中。如果值对应的选项被禁用或不存在,则校验不通过,阻止保存。
  3. 使用插槽自定义展示:uni-data-select 提供了 selected 插槽,可以自定义选中的数据展示。通过该插槽,如果 selectedItems 为空但 v-model 有值,可以展示原始 value 或提示信息,让用户明确这里有值需要处理。
  4. 考虑替代插件:如果官方组件暂时无法满足您的业务需求,您可以前往插件市场查看基于官方组件二次开发并支持选项禁用等增强功能的插件,例如 csr-uni-data-select(https://ext.dcloud.net.cn/plugin?id=23715)。

同时,您可以将此优化建议提交至官方问答社区,以便官方研发团队评估后续的优化方向:https://ask.dcloud.net.cn/

内容为 AI 生成,仅供参考

要回复问题请先登录或注册