Skip to content

fix(TreeSelect): preserve selection and sync option updates - #4670

Open
dvd233 wants to merge 3 commits into
Tencent:developfrom
dvd233:codex/fix-tree-select-zero-values
Open

dvd233 wants to merge 3 commits into
Tencent:developfrom
dvd233:codex/fix-tree-select-zero-values

Conversation

@dvd233

@dvd233 dvd233 commented Oct 9, 2026 •

Copy link
Copy Markdown

🤔 这个 PR 的性质是?

  • 日常 bug 修复
  • 测试用例

🔗 相关 Issue

源码排查发现的问题,无关联 Issue。按维护者建议,将 #4670、#4671、#4672 整合到本 PR,按独立提交区分修复点。

💡 问题和修改

  1. cd2e482:父节点路径为数值 0 或空字符串时,保留正确子列选择。小程序和 uniapp 均使用既有 isDef 判定,保留空值与未匹配值的原回退规则。
  2. 3479dc6:uniapp 外部 value、customValue 替换或深层更新时同步内部值,再重建选项。保留 customValue 优先级、非受控选择和空数组语义,不额外发送 change / update:value。
  3. 7644e17:小程序和 uniapp 的 options 变为空数组时清空显示列,同时保留选中路径,以便选项恢复后重建。

三个原修复按顺序正常追加,未改写历史,没有添加其他产品行为。

验证

  • 组合源码的官方 Jest / miniprogram-simulate 测试:6 suites、41 tests、3 snapshots 全部通过。
  • uniapp 当前 TreeSelect 及 9 个真实子 SFC 的浏览器 fixture:41 个场景全部通过,含 4 个“空选项期间更新零值/空字符串路径,再恢复选项”的交互场景,无页面异常或 Vue warning。
  • 五个文件 ESLint 0 errors(3 条原有 _trigger warning),Prettier、git diff --check 通过。正常提交钩子也通过,提交后的源码哈希与测试输入一致。

Windows 测试沿用官方 wcc 的 --config-path 传递完整参数以规避命令行长度限制。浏览器 fixture 使用官方 H5/Vue3 条件预处理,并适配设备元信息、基础 HTML 标签和 rpx 单位;不代表完整 uni-app 发布页面或微信真机验证。本次未重跑全仓测试、完整分发构建或微信开发者工具 E2E;各原 PR 的历史构建记录不作为组合提交的新验证结果。

📝 更新日志

tdesign-miniprogram

  • fix(TreeSelect): 修复零值/空字符串路径的子列选择,以及空选项时残留旧列的问题。

@tdesign/uniapp

  • fix(TreeSelect): 修复零值/空字符串路径选择、外部值更新不同步及空选项时残留旧列的问题。

☑️ 请求合并前的自查清单

  • 文档已补充或无须补充
  • 代码演示已提供或无须提供
  • TypeScript 定义已补充或无须补充
  • Changelog 已提供或无须提供

@dvd233 dvd233 changed the title fix(TreeSelect): preserve zero-valued branch selection fix(TreeSelect): preserve selection and sync option updates Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant