vue3+ts 使用 getCurrentInstance 报错解决
vue3+ts使用getCurrentInstance 报错解决
·
vue3中没有this + 各种api的方法
vue3提供的方法,创建类似于this的实例。
const instance = getCurrentInstance()
const a1= getCurrentInstance();
a1.$toast({type: 'error', text: '登录失败' });
这种只适合本地调试,运行到线上就会报错,报错详情为:
类型“ComponentInternalInstance | null”上不存在属性“proxy”。ts(2339)
然后下面会报这个错误
Unsafe member access .$axios on an `any` value. eslint@typescript-eslint/no-unsafe-member-access
Unsafe call of an `any` typed value. eslint@typescript-eslint/no-unsafe-call
原因:getCurrentInstance()
的返回类型存在null
所以在此处添加断言即可。在proxy后面添加?来过滤null的结果,即:
const instance = getCurrentInstance()?.proxy
instance ?.$toast('请xxx!')
更多推荐
已为社区贡献2条内容
所有评论(0)