uni-app uni.createIntersectionObserver在vue3的自定义组件中填坑

uni.createIntersectionObserver 在自定义组件中无法获取到对应的dom节点:

uni.createIntersectionObserver().relativeTo('.consult_title').observe('#consultNotice', (res) => {
    //目前这种方式在开发者工具中会报 Node '.consult_title' is not found  Node '#consultNotice' is not found
});

根据微信文档描述在自定义组件中必须用传递this;

在这里插入图片描述

uniapp的文档有说明如何传入this
在这里插入图片描述

然而在vue3中是摒弃了this,这就需要通过vue3新增的API获取我们所需要的this:

//getCurrentInstance
import {getCurrentInstance} from 'vue'

setup(){
    const _this = getCurrentInstance(); // 通过getCurrentInstance得到我们想要的this,并把this传入createIntersectionObserver中
    //_this.proxy
    uni.createIntersectionObserver(_this.proxy).relativeTo('.consult_title').observe('#consultNotice', (res) => {});
}

如果此文对你有用请动动你的小手点个赞!谢谢!!!

你可能感兴趣的:(uni-app uni.createIntersectionObserver在vue3的自定义组件中填坑)