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

1,611 阅读1分钟

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

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