角度:错误 TS2339:“对象”类型上不存在属性“数据”

Posted

技术标签:

【中文标题】角度:错误 TS2339:“对象”类型上不存在属性“数据”【英文标题】:Angular : error TS2339: Property 'data' does not exist on type 'Object 【发布时间】:2020-07-07 20:24:03 【问题描述】:

我是 Angular 的初学者,我遇到了一个奇怪的错误,它说它没有在 API 对象中找到属性数据我正在尝试从一个简单的 API 获取数据,并将其显示在我的页面中是代码。

export class ArticlesComponent implements OnInit 
 users: Object;

  constructor(private data: DataService)  

  ngOnInit(): void 
    this.data.getUsers().subscribe(data=>
      this.users=data;
      console.log(this.users);

    );
  



模板是这样的

<ul *ngIf="users">
  <li *ngFor="let user of users.data">
    <img [src]="user.avatar">
     <p>user.first_name user.last_name</p>
  </li>
</ul>

我已经在这里存货好几个小时了。当我控制台日志时,有一个数据属性并包含用户的所有信息,这就是我要显示的内容,它告诉我不存在。这是 API 链接:https://reqres.in/api/users 请帮忙。

而服务类中的功能是:

export class DataService 

  constructor(private http: HttpClient)  
  getUsers()
       return this.http.get('https://reqres.in/api/users?page=2');
  

【问题讨论】:

ngIf 语法似乎有误。 您的代码运行良好。确保您正确书写了ngIf 是的,我修复了它,但它仍然无法识别 users.data。 我复制了你的代码,它工作正常。 同一页面上是否还有其他 api 类?也许错误是由于其他原因。这工作正常。 【参考方案1】:

我试过你的代码,它工作正常。你仍然得到错误,你可以定义像 users?.data in ngFor 循环。

【讨论】:

那么我的 chrome navigator 一定有问题,我无法修复它,我尝试了其他 API,在对象中集成了一个 Array,没有什么不能访问它!有什么建议吗?请 尝试从开发者控制台的应用程序选项卡中清除站点数据并进行硬刷新。 我不明白,为什么它不能访问对象内部数组中的数据!?当它是一个简单的 API 对象时,它可以正常工作,但是当涉及到这种类型时,无法加载它们@ 服务器被冻结了,我只好硬刷新它然后重新打开它,它工作了谢谢,伙计们。

以上是关于角度:错误 TS2339:“对象”类型上不存在属性“数据”的主要内容,如果未能解决你的问题,请参考以下文章

错误 TS2339:类型“”上不存在属性“包含”

类型“未知”.ts(2339) 上不存在属性“名称”

错误 TS2339:类型“”上不存在属性“contenido”

错误 TS2339:“主页”类型上不存在属性“路由器”

错误 TS2339:“字符串”类型上不存在属性“endsWith”

错误 TS2339:类型“Y”上不存在属性“x”