-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(tooltip): 修复 tooltip transition 不生效以及线上兼容问题 #282
Conversation
如果对这块还是没理解我这么改的原因, 我可以再详细、完整地解释一遍. 可能确实不太好review, 这边历史悠久, 牵涉的东西也不少. 有问题可以留言或者随时钉钉找我. |
目前我在 我能想到的就是先发一版, 然后 或者, 你们有什么更好的办法也可以提出来. |
不建议先发版,再测试。 |
嗯 我试试 |
我这边要改的, 需要考虑的场景啥的, 都尽可能考虑了, 单测这边也没什么问题, 本地开UI效果也没发现问题, 你们review下, 有问题随时留言 or 钉钉联系. |
另外在 debug 过程中我发现 G2 的 Tooltip 在设计上存在一些问题,新版可以加以改进。 从
但到了上层 G2 使用时,
最后到了自定义 Tooltip 内容这块儿,如果是我来设计会 严格限制自定义的范围。自定义内容应该以 插槽 形式嵌入预定容器 <div class="g2-tooltip" style="...">
<slot></slot>
</div> 如果容器不可见,那如何改变容器样式呢?我觉得这也是目前支持用户传入用于替换 <div class="g2-tooltip my-custom-classname" style="...">
// ...Blah, blah
</div> 但仔细想想,用户想改变的并不是容器的 DOM 结构,他只是想改样式而已。类似的思路在 antd 中随处可见,例如下拉菜单不会允许对于 overlay 结构的任意修改,而是提供 因此我认为完全没必要支持以下替换容器的写法,而且这也并不灵活,毕竟还得要求用户写上 // before
customContent: (title: string, data: any[]) => {
return `
<div class="g2-tooltip custom-html-tooltip">
<my-content />
</div>
`;
}
// after
tooltipClassName: 'custom-html-tooltip',
customContent: (title: string, data: any[]) => {
return `
<my-content />
`;
} |
你说的没错. 我发现 这一点是非常违和的. 可以说, 如果不看用例, 单单只看API, 用户都会觉得我只需要返回一个DOM即可, 渲染是图表库的事情. 根本不会往定位上去想.
你说的 |
是的,所以我认为就不应该出现使用 |
然后我本地测试这种互相依赖的项目会使用 |
我用的 顺便一提, 像G2这种生态架构, |
@Eve-Sama 处理的原始 issue 是这个吗? |
嗯 是一个东西. |
https://codesandbox.io/s/determined-kapitsa-tu258h?file=/index.ts |
看了下, 没问题. 因为tooltip的容器使用的绝对定位, 所以有多个tooltip, 也不会互相干预的. |
已在 G2 中验证,同样可以解决这个问题。 |
目前 0.8.32 版本有这个问题,我这边先废弃版本就好。具体修复方案,可以看下,或者考虑外置新的 tooltip 插件,而不是使用 antv/component 了。 |
Checklist
npm test
passesDescription of change
为了减少大家的思考复杂度, 在简述部分不多说了, 直接看下方留言的小作文就好.