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

feat(Input): support all native attributes and events

Open RylanBot opened this issue 6 months ago • 2 comments

🤔 这个 PR 的性质是?

  • [x] 日常 bug 修复
  • [x] 新特性提交
  • [x] 文档改进
  • [ ] 演示代码改进
  • [ ] 组件样式/交互改进
  • [ ] CI/CD 改进
  • [ ] 重构
  • [ ] 代码风格优化
  • [ ] 测试用例
  • [ ] 分支合并
  • [ ] 其他

🔗 相关 Issue

  • https://github.com/Tencent/tdesign-react/issues/2708
  • https://github.com/Tencent/tdesign-react/issues/2790
    • 待讨论 1:id 是否要改为直接注入原生 input,目前textarea 的逻辑就是这样…虽然我觉得是意外为之
  • https://github.com/Tencent/tdesign-react/issues/3654
    • 待讨论 2:其实是支持的…只不过文档没有写 / 暴露出的 TS 类型和实际返回参数格式不一样
  • https://github.com/Tencent/tdesign-react/issues/3662

💡 需求背景和解决方案

🐛 问题1:文档目录解析异常
  • 如果大标题存在行内 code,会被替换为 td-code,导致目录标题无法提取到原始的字符串
🔧 问题2:大部分基于 Input 的组件无法通过 ref 获取内部的原生组件
  • 其实部分组件有 export 出来过,只不过文档上没有标,主打一个某天意外被用户挖掘到,不太确定这么暴露是否有隐患,所以暂时放在 FAQ

  • AntDesign 它们有一个工具,也许未来可以引进优化一下

🚨 问题3:Textarea 支持所有原生属性和事件穿透,但 Input 不支持
有点 Breaking Change 了,需要讨论一下,我会在下面 Code Review 进行引用并评论解释

📝 更新日志

  • feat(Input): 支持所有原生属性和事件穿透

  • fix(Textarea): 将 id 绑定到外层的 div,而非原生 <textarea/> 元素上 ⚠️

  • [ ] 本条 PR 不需要纳入 Changelog

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

⚠️ 请自检并全部勾选全部选项。⚠️

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

RylanBot avatar Jul 15 '25 09:07 RylanBot

tdesign-react-demo

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

commit: a3e8e97

pkg-pr-new[bot] avatar Jul 15 '25 09:07 pkg-pr-new[bot]

完成

github-actions[bot] avatar Jul 15 '25 09:07 github-actions[bot]