vue.js - Vue3 Composition API PerfectScrollbar Plugin 没有指定要初始化的元素
问题描述
我正在尝试为 Vue3创建一个Perfect Scrollbar插件,但是在初始化对象时遇到了一个错误:
错误:没有指定元素来初始化 PerfectScrollbar
滚动条组件:
import PerfectScrollbar from 'perfect-scrollbar'
import { isEmpty } from 'lodash'
import {
onMounted,
reactive,
ref,
h
} from 'vue'
export default {
name: 'VuePerfectScrollbar',
props: {
options: {
type: Object,
required: false,
default: () => {
}
},
tag: {
type: String,
required: false,
default: 'div'
}
},
setup(props, {emit, slots}) {
const el = ref(null)
let ps = reactive({})
onMounted(() => {
if (isEmpty(ps)) {
ps = new PerfectScrollbar(el, props.options)
}
})
return () => h(
props.tag,
{
class: 'ps',
ref: el
},
slots.default && slots.default()
)
}
}
我在初始化之前做了一个console.log,元素引用就在那里,所以我不确定为什么会弹出错误。据此,也许 This error simply means that you are calling PerfectScrollbar on something that doesn't exist!
当时 DOM 还没有更新?我也尝试过 nextTick 但它没有用。
解决方案
您应该可以访问value
ref 属性中的属性,如下所示:
ps = new PerfectScrollbar(el.value, props.options)
推荐阅读
- php - 如何从 mysql 中链接数据(如 mongodb)以作为 json 传递给 api
- javascript - 如何通过ajax将表单输入传递给其他php文件
- jquery - 将多个下拉列表转换为 div 并将它们分组 jquery
- function - 将函数表示为类型
- arduino - 连接服务器后没有GPS数据
- javascript - 悬停文本时出现图像(html引导程序)
- c# - CsvHelper 不会从 CsvHelper 创建的 .csv 文件中读取数据
- python - Heroku-Django:requirements.txt
- rust - 如何从 rbtree-rs 插入或更新 RBTree?
- influxdb - 有差异的查询不返回数据