尽管在构造函数中进行了设置,但数据仍未定义

时间:2018-11-09 02:05:18

标签: angular typescript rxjs

我正在尝试从URL中获取queryParams,并使用它来解析这样的数据:

  data = {
    searchValue: null || undefined
  };
  constructor(private http: HttpClient, private route: ActivatedRoute) {
    route.queryParams.subscribe(params => this.data.searchValue = params.search);
  }

  resolve(
    route: ActivatedRouteSnapshot,
    state: RouterStateSnapshot
  ): Observable<any> {
    console.log(this.data);
    if (!this.data) {
      throwError(console.error());
  }

尽管在构造函数中设置了数据,但仍将其记录为未定义。我不确定为什么它不起作用,如果有人可以详细解释我做错了什么以及如何纠正该问题,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

使用snapshot中的ActivatedRoute

 constructor(private http: HttpClient, private route: ActivatedRoute) {
    this.data.searchValue = this.route.snapshot.queryParams['search'];
  }