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) => {});
}

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容