原生HTML弹出框在Safari/iOS上不起作用
我有一个React应用,使用 原生HTML弹出框。
我的做法是:
- 渲染一个按钮,其作用只是通过useState来切换可见性。
- 渲染弹出容器,至少具备以下属性:
```js
```
- 在useEffect中监听来自父组件的可见性状态,并在ref上调用togglePopover:
```js
useEffect(() => {
if (open) {
popoverRef.current && popoverRef.current.showPopover();
} else {
popoverRef.current && popoverRef.current.hidePopover();
}
}, [open, popoverRef]);
```
这是我最小可行的实现,用来打开和关闭弹出框。然而,在Safari或 iOS上,这似乎根本不起作用。当用户点击按钮时,似乎什么也没有发生。为什么?
##解决方案
原来需要在父级添加一行特定的CSS,这个父级就是弹出容器的父级:
overflow: "initial"
这样它们就能正常打开。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。