vue使用antdesign抽屉组件:getContainer="()=>"外层的滚动条没有被遮罩
时间: 2024-09-30 08:03:32 浏览: 28
在Vue中使用Ant Design的Drawer(抽屉)组件时,如果设置了`getContainer="() => document.body"`这样的动态容器选择器,可能会遇到外层滚动条没有被遮罩的问题。这是因为`document.body`通常不会包含滚动条,当抽屉打开时,它的内容区域并不会阻止外部页面的滚动。
要解决这个问题,你可以尝试设置固定的、包含滚动条的容器,例如`getContainer="parentRef.current"`,其中`parentRef`是一个`ref`对象引用到包含滚动条的DOM元素,比如`<div ref="drawerParent">...</div>`。这样,当抽屉打开时,滚动条会被正确地隐藏起来。
代码示例:
```html
<template>
<div ref="drawerParent">
<a-drawer :getContainer="(ref) => ref" />
</div>
</template>
<script>
export default {
setup() {
const drawerRef = ref(null);
return { drawerRef };
}
};
</script>
```
记得在`mounted()`生命周期钩子中初始化`ref`,确保`parentRef.current`是存在的:
```javascript
mounted() {
this.drawerRef.value = this.$refs.drawerParent;
}
```
阅读全文