我用TS装饰器依赖注入(DI)时候,发现啊,遇到服务无法正确注入的问题。
我这边代码如这样的:
// service.ts
export class MyService {
sayHello() {
console.log('111');
}
}
// app.ts
import { MyService } from './service';
@Component
export default class MyApp extends ViewModel {
@Inject(MyService) private myService!: MyService;
mounted() {
this.myService.sayHello();
}
}
我期望在MyApp组件的mounted生命周期钩子中通过myService调用sayHello方法,但遇到了TypeError: Cannot read property 'sayHello' of undefined的错误。
这个是咋回事?或者大概什么原因?我应该怎么排查?
我已经确认MyService类已正确定义并可以独立使用。
也确认是否遗漏了装饰器的使用步骤或配置。
尝试使用不同的方式引入和注入服务,包括直接在组件内部实例化MyService,以验证服务本身没有问题。
我希望找到正确的依赖注入方式,使得可以在ArkTS组件中通过装饰器自动注入服务,无需手动实例化服务,以便更好地利用TypeScript提供的类型检查和依赖管理功能。