繁体   English   中英

记录到控制台会显示已定义的值,但将属性错误视为未定义

[英]Logging to console shows defined value, but using property errors out as undefined

我正在尝试调试TypeError:无法读取未定义的属性“name”。

我设置控制台日志记录来记录值,它们是在我console.log它们时定义的,但是当我尝试使用它们在下面创建我的Place对象时它们是未定义的。

.name特别吗?

doSearch(term: string) {
this.searchService.onSearchClick(term).subscribe((data) => {
  this.searchResults = [];
  console.log(data); //works
  if (data.hasOwnProperty('candidates')) {
    data['candidates'].forEach( (place) => {
      console.log(place); //works
      console.log(place.formatted_address); //works
      console.log(place.name); //works 
      console.log(place.place_id); //works
      this.searchResults.push(new Place(place.formatted_address,
        '',
        '',
        '',
        new firebase.firestore.GeoPoint(0, 0),
        place.name,
        new firebase.firestore.GeoPoint(0, 0),
        [],
        place.place_id, //errors out here...
        99,
        99,
        new firebase.firestore.GeoPoint(0, 0),
        '',
        '',
        '',
        []));
    });
  }
});

我期望place.name被定义,因为控制台日志显示它,但我得到一个未定义的错误。

上面的代码注销:

对象,数组,arrayobject formatted_address,arrayobject名称,arrayobject place_id

我在console.log中定义并显示所有内容。

但是当我尝试创建一个Place对象时,它会在place.name上出错。

感谢ConnorsFan让我朝着正确的方向前进。

当html尝试渲染组件时,错误发生在以后。 place对象已成功创建。 我只是假设它在代码中的错误位置出错。 我应该真正阅读控制台提供的行号,以便下次让自己头疼...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM