我想通过 id 获取 tmdb json 数据到我的电影详细信息组件 html,但是“在第一次扩展时评估了这个值,它可能从那时起就发生了变化”错误
这是我的代码
电影服务
> df
From To Number
1738799 Jasmine 1
657940 64839 2
1738799 8494 3
13253 2773 4
97980 6569874 5
6569874 1738799 6
电影细节组件
getMovieById(movieId: string): Observable<Movie>{
alert(movieId);
return this.httpClient.get<Movie>(this.path + "results?id=" + movieId);
}
组件 HTML
movies!: Movie;
ngOnInit() {
this.activatedRoute.params.subscribe(params=>{
this.getMovieById(params["movieId"])
})
}
getMovieById(movieId: any){
this.movieService.getMovieById(movieId).subscribe(movies=>{
this.movies=data;
})
}
答案 0 :(得分:0)
当您在 ngOnInit 中调用异步函数并更改某些值(在页面加载之前)时会发生这种情况,因此您可以这样做:
ngOnInit() {
setTimeout(() => {
this.activatedRoute.params.subscribe(params=>{
this.getMovieById(params["movieId"])
})
})
}
通过这样做,您的代码会通知 Angular 不必等待此函数加载页面并填充变量以在 HTML 中显示它
也许你也需要这样做:
<p><span>{{movie?.title}}</span></p>