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!')  

Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐