vue3依赖注入的问题?-灵析社区

北北che

供给方组件: ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250103/912a4d65dfb47ed66a751413d891187e.png) 注入方组件: ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250103/9fb97814a6bcfdd93cd6e7196090b19f.png) 浏览器中可以正常展示: ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250103/cd66918686d3f0e80d5a84fc46972532.png) 但是如果在供给方组件中,更换ElMessage和provide的顺序,如下图: ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250103/86ca8cde42c6c08eafb7241dd9f1bd62.png) 浏览器中就无法正常渲染,并且控制台报警告: ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250103/9d4af2f010ea244a52db6c243b5a9d49.png) 请问这是什么原因呢? 备注: "element-plus": "^2.3.12" "vue": "^3.3.4"

阅读量:306

点赞量:13

问AI
一颗西兰花
看了下,vue有个全局变量"currentInstance",每次setup流程都会先将当前组件赋值给它,setup结束后再将"currentInstance"设为null 而"ElMessage.success"这个方法会动态创建一个组件,也就是会走一遍setup流程,那这样"ElMessage.success"调用完成后,"currentInstance"就是null "provide"时如果"currentInstance"为null就会报错,导致"inject"没有找到值 我感觉就是偷懒没做校验提示