请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于拿不到注入 以及 InjectionKey ts报错的疑问

图片描述

在看官网的时候看到 InjectionKey<string> 有几点疑问:

  1. InjectionKey<string> 是用来规范注入值的类型对吗?

  2. 那么我如下的写法 想要注入的值为对象 为什么ts会报错呢
    图片描述

  3. 为什么我在全局注入的 ‘globalUser’ ,在app.vue页面inject可以正常拿到数据,但在app.vue中使用的异步组件下inject却拿不到注入的数据呢?
    图片描述图片描述

正在回答 回答被采纳积分+3

1回答

张轩 2022-09-29 09:57:15

同学你好,分别回答一下:

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),我在本地帮你看一下,谢谢

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号