关于拿不到注入 以及 InjectionKey ts报错的疑问
来源:3-21 Provide - Inject
慕圣4449978
2022-09-28
在看官网的时候看到 InjectionKey<string>
有几点疑问:
-
InjectionKey<string>
是用来规范注入值的类型对吗? -
那么我如下的写法 想要注入的值为对象 为什么ts会报错呢
-
为什么我在全局注入的 ‘globalUser’ ,在app.vue页面inject可以正常拿到数据,但在app.vue中使用的异步组件下inject却拿不到注入的数据呢?
写回答
1回答
-
张轩
2022-09-29
同学你好,分别回答一下:
1 对 泛型中 应该传入的是对应的类型。
2 你的写法不对,应该是使用 Symbol,如下代码:
// main.ts export const key = Symbol() as InjectionKey<{ name: string }> // 这这里,它会检验 provide 的第二个参数是否正确 app.provide(key, { name: 'viking' }) // 使用的地方 import { key } from '../main' const currentUser = inject(key) // 你会发现 currentUser 现在有类型了~
3 方面的话请提供一下代码库(git),我在本地帮你看一下,谢谢
00
相似问题
main.ts导入组件,项目运行报错
回答 1
关于ts文件引入vue文件报错问题
回答 1