Skip to content

fix(Slider): handle empty range values - #4425

Merged
uyarn merged 4 commits into
Tencent:developfrom
dvd233:fix/slider-empty-range
Oct 30, 2026
Merged

uyarn merged 4 commits into
Tencent:developfrom
dvd233:fix/slider-empty-range

Conversation

@dvd233

@dvd233 dvd233 commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

🤔 这个 PR 的性质是?

  • 日常 bug 修复
  • 测试用例

🔗 相关 Issue

Fixes #2618

💡 需求背景和解决方案

双游标 Slider 在 value 为 undefined、空数组,或未提供初值时,拖动可能返回标量或缺少端点的数组。空范围现在使用当前 min 补齐两个端点,渲染、边界判断和 onChange 去重共用该有效值;内部默认的 0 在范围有效时仍保留。重合端点按轨道或 marks 点击方向选择可移动的一端。

显式 numeric value/defaultValue 保持标量回调,正常 pair 的中点选择及受控行为保持原契约。使用初始 defaultValue 的来源,避免后续修改该 prop 重新解释已初始化状态。不改生成的 API 类型、默认属性或共享 useControlled。

本地验证:

  • 新增 28 例回归,连同原 Slider / SliderHandleButton 测试共 34 例通过;覆盖双端拖动、轨道/marks、正负及动态 min、受控不回写、无变化事件和 defaultValue 后续变化。
  • 真实组件及匹配样式的浏览器对照:基线四种空初值场景出现标量或数组空位;修复后核验 11 个场景,包括受控/非受控空范围、正常双值、单值、min=10、受控不回写及 disabled,并核验重合端点的轨道点击。marks、负/动态 min 和 defaultValue 后续变化属于单元测试覆盖。
  • 原始 tsconfig.dev.json 使用 TypeScript 6.0.3 检查通过;两文件 ESLint 规则诊断为 0 错误、0 警告。复用环境的 @typescript-eslint 5.62.0 未声明支持 TS 6;补充测试类型检查在未改的 test/utils/index.jsx 报 17 项 TS2883,原有 slider.test.tsx 对照产生相同诊断。
  • 完整 monorepo 测试、快照和发布构建未在本地执行。

使用 Codex 辅助调查、实现和验证。

📷 交互对照

基线:undefined 返回标量;空数组的拖动回调出现空位。

基线真实拖动

修复后:先拖右端得到 [0, 70],再拖左端得到 [25, 70]。

修复后真实拖动

验证说明与截图来源。截图中的 fixed 包构建早于本地提交,源码哈希与本 PR 提交一致。

📝 更新日志

tdesign-react

  • fix(Slider): 修复开启 range 但传入空范围值时,无法正确交互的问题

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

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

@tdesign-bot

tdesign-bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

TDesign Component Site Preview Open

Component Preview
tdesign-react 完成
@tdesign-react/chat 完成

@pkg-pr-new

pkg-pr-new Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
  • tdesign-react-demo

    npm i https://pkg.pr.new/tdesign-react@4425
    
    npm i https://pkg.pr.new/@tdesign-react/chat@4425
    

commit: 3af37b9

@RylanBot
RylanBot force-pushed the fix/slider-empty-range branch from f1cf9ac to 3af37b9 Compare October 19, 2026 04:33
@uyarn
uyarn merged commit 3cfb917 into Tencent:develop Oct 30, 2026
1 check passed
@tdesign-bot tdesign-bot mentioned this pull request Oct 30, 2026
5 of 16 tasks
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.

[Slider] range 模式下设置了 value 为 undeifned 时无法操作第二个游标滑块无法拖动

4 participants