Naive UI 的 Tooltip 为什么在动态内容更新后位置错乱?
我在用 Naive UI 的 Tooltip 组件包裹一个动态变化的按钮文字,但发现当按钮文本变长后,Tooltip 的定位没跟着调整,还是按原来的位置显示,导致提示框偏移甚至超出屏幕。我试过手动调用 update 方法,也加了 key 值强制重渲染,都没用。
这是我的代码:
<n-tooltip trigger="hover">
<template #trigger>
<n-button>{{ buttonText }}</n-button>
</template>
这是一段提示信息
</n-tooltip>
有没有人遇到过类似问题?是不是需要手动触发 Tooltip 的重新定位?
解决方法是用
n-tooltip的show属性配合on-update:show事件。我当时的解决方案是这样的:然后在script里:
这样搞是因为Naive UI的Tooltip内部用了Popper.js做定位,动态内容变化后需要手动触发syncPosition。我当时调试了半天才发现这个问题,气得想砸键盘。
另外如果你用的Naive UI版本比较新,可以直接用
syncTrigger="resize"属性,但实测在动态文本变化时还是不太稳定,所以还是推荐手动控制的方式。