- 问题描述:写了一个基于vue3的lottie动画组件,原本是直接在pages下新建一个页面来写的demo,通过如下代码是可以获取到canvas实例的,但是自己把代码抽出去后做成一个组件的时候这段代码就会返回null从而无法渲染
uni.createSelectorQuery().select('#canvas')
.node(res => {
const canvas=res.node
})
.exec();
- 解决方案:因为我是基于vue3+ts写的所以要给上面代码加上in方法,如:vue2写法in(this),vue3写法如下
//1、首先导入当前组件的实例
import {getCurrentInstance} from "vue";
var currentInstance = getCurrentInstance();
//2、添加上in方法
uni.createSelectorQuery().in(currentInstance).select('#canvas')
添加以上代码就能拿到canvas