Ionic6 Vue3安卓端getCurrentInstance()返回null问题及解决
问题:Android端Vue组件中getCurrentInstance()获取App实例为null,无法访问全局$sqlite属性
问题详情
- Web端运行正常,但在Android Studio中运行时,组件的setup函数里调用
getCurrentInstance()获取的App实例始终为null,导致无法读取挂载在全局的$sqlite属性 - main.ts已严格参照capacitor-community/sqlite官方文档完成数据库创建流程
解决方法:使用Vue的Provide/Inject机制
在main.ts中提供SQLite实例:
在创建并初始化sqlite实例的代码后,添加provide语句将实例注入全局:app.provide("$sqlite", sqlite);在组件中注入并使用实例:
在组件的setup函数中,通过inject获取sqlite实例:import { inject } from 'vue'; export default { setup() { const sqlite = inject('$sqlite'); // 此处可正常使用sqlite实例执行数据库操作 } }
内容的提问来源于stack exchange,提问作者Francisco
相关产品推荐
相关产品推荐

