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

添加以上代码就能拿到canvas

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐