当从构造函数中调用httpClient时,Angular组件的构造函数会加载两次



当从同一个构造函数调用httpClient函数时,Angular的构造函数会加载两次。

export class ViewOrderDetailsComponent {
constructor(
private activatedRoute: ActivatedRoute,
private router: Router,
private httpClient:HttpClient) {
console.log("_______________constructor____________");   
this.httpClient.get("https://jsonplaceholder.typicode.com/todos/1",{headers: null, params:null}).subscribe();
//constructor loads once if above line is commented.

}
}

不建议从构造函数调用api吗?

没有办法加载组件的构造函数两次而不首先破坏它所以我认为在你的应用程序中有另一部分代码负责加载你的组件两次,无论如何我也尝试了一些修改你的代码,因为头和参数不能为空,它的工作正常没有你提到的问题

this.httpClient.get("https://jsonplaceholder.typicode.com/todos",{headers:new HttpHeaders,params:{id:5,completed:false}}).subscribe(data=>{
console.log(data);
});

和关于你的问题,是的,在一个组件的构造函数中调用API是一个不好的做法,它更喜欢从服务中调用它。我希望这对你有所帮助。

最新更新