代码之家  ›  专栏  ›  技术社区  ›  J.G.Sable

无法将push的属性读取为未定义的角度7

  •  0
  • J.G.Sable  · 技术社区  · 6 年前

    我有一个HTTP服务来获取股票符号:

    getStockBySymbol(symbol): Observable<IEXStockPrice> {
        return this.http.get<IEXStockPrice>(this.IEXBaseUrl + '/stock/' + symbol + '/quote');
    }
    

    在我的组件中,i:1)有一个局部变量 watchlist: IEXStockPrice[]; 2)调用我的getstockbysymbol服务并订阅它:

    addStockToWatchList() {
        this.iex.getStockBySymbol(this.symbol)
          .subscribe(
            (data: IEXStockPrice) => {
              this.watchlist.push(data);
              this.alertify.success('Added ' + data.symbol);
              this.symbol = '';
            },
            (err: any) => {
              this.alertify.error('Could not add symbol to the watchlist');
              this.symbol = '';
            }
          );
      }
    

    但是,当我尝试将返回的股票添加到股票的本地观察列表数组时,我得到一个 Cannot read property 'push' of undefined 在控制台中。我不知道我在这里做错了什么。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Derviş Kayımbaşıoğlu    6 年前

    您声明了局部变量,但没有初始化它:

    watchlist: IEXStockPrice[] = [];
    

    那你就可以走了。

    在使用诸如push、pop等数组函数之前,需要初始化数组。