tdesign-react
tdesign-react copied to clipboard
fix(Popup): `triggerElement` string not working as CSS selector
🤔 这个 PR 的性质是?
- [x] 日常 bug 修复
- [ ] 新特性提交
- [ ] 文档改进
- [ ] 演示代码改进
- [ ] 组件样式/交互改进
- [ ] CI/CD 改进
- [x] 重构
- [ ] 代码风格优化
- [ ] 测试用例
- [ ] 分支合并
- [ ] 其他
🔗 相关 Issue
- https://github.com/Tencent/tdesign-react/issues/3932
- https://github.com/Tencent/tdesign-react/pull/3770
- https://github.com/Tencent/tdesign-react/issues/4000
💡 需求背景和解决方案
- 统一使用原生监听器,不依赖
ref和props的穿透 - 影响了 https://github.com/Tencent/tdesign-react/issues/2320 相关修复,采用
useInnerPopupVisible解决
[!NOTE]
该 PR 解决了children为普通二次封装组件,无法正常穿透的问题。但是如果它使用了useImperativeHandle覆盖ref,从而误判导致拿不到 DOM 节点,仍需要用户自己手动使用<></>包裹,例如 https://github.com/Tencent/tdesign-react/issues/3990Ant Design 底层也有类似的问题:https://ant.design/components/popover-cn#faq
📝 更新日志
-
fix(Popup): 修复
triggerElement类型为字符串时未正确作为元素选择器解析的问题 -
fix(Popup): 修复
children为不支持ref穿透的封装组件时,弹窗无法正常出现的问题 -
fix(PopupPlugin): 修复
classPrefix不生效的问题 -
[ ] 本条 PR 不需要纳入 Changelog
☑️ 请求合并前的自查清单
⚠️ 请自检并全部勾选全部选项。⚠️
- [x] 文档已补充或无须补充
- [x] 代码演示已提供或无须提供
- [x] TypeScript 定义已补充或无须补充
- [x] Changelog 已提供或无须提供
/update-common
