【发布时间】:2020-07-30 12:27:22
【问题描述】:
我创建的应用程序在开发服务器 ng serve 上运行良好,但是当我尝试构建生产时它失败并出现此错误
ERROR in src/app/leaderboard/leaderboard.component.html(9,17): Argument of type 'object' is not assignable to parameter of type 'Map<unknown, unknown>'
这是我的 leaderboard.component.ts
import { Component, OnInit } from '@angular/core';
import * as firebase from 'firebase/app';
import 'firebase/firestore';
@Component({
selector: 'app-leaderboard',
templateUrl: './leaderboard.component.html',
styleUrls: ['./leaderboard.component.css']
})
export class LeaderboardComponent implements OnInit {
constructor() { }
db = firebase.firestore();
cities:object;
suburbs:object;
unsorted() { }
async getCities() {
await this.db.collection("Cities").orderBy('count', "desc").get()
.then((querySnapshot) => {
querySnapshot.forEach((doc) => {
//console.log(doc.id, ": ", doc.data().count);
this.cities[doc.id] = doc.data().count
});
})
.catch(function(error) {
console.log("Error getting documents: ", error);
});
}
async getSuburbs() {
await this.db.collection("Suburbs").orderBy('count', "desc").get()
.then((querySnapshot) => {
querySnapshot.forEach((doc) => {
//console.log(doc.id, ": ", doc.data().count);
this.suburbs[doc.id] = doc.data().count
});
})
.catch(function(error) {
console.log("Error getting documents: ", error);
});
}
ngOnInit() {
this.getCities()
this.getSuburbs()
}
}
这是 leaderboard.component.html
<div class="container">
<div class="row">
<h3>Cities</h3>
<table class="table">
<thead class="thead-dark">
<th scope="col">City</th>
<th scope="col">Bears found</th>
</thead>
<tr *ngFor="let city of cities | keyvalue: unsorted">
<td>{{city.key}}</td>
<td>{{city.value}}</td>
</tr>
</table>
</div>
<div class="row">
<h3>Suburbs</h3>
<table class="table">
<thead class="thead-dark">
<th scope="col">Suburb</th>
<th scope="col">Bears found</th>
</thead>
<tr *ngFor="let suburb of suburbs | keyvalue: unsorted">
<td>{{suburb.key}}</td>
<td>{{suburb.value}}</td>
</tr>
</table>
</div>
</div>
我认为这是来自 TypeScript 的某种打字错误,但由于我只是一个初学者,我不太确定我能做些什么来修复它。
我在 html 的第 22 行遗漏了第二个错误,因为它与我使用键值管道的第 9 行的错误相同
谢谢
【问题讨论】:
-
你的
unsorted() { }方法在你的 ts 文件中是空白的 -
这是故意的。默认情况下,键值管道按我不想要的键排序,当数据来自 Firestore 时,数据已经按照我想要的方式排序。如果我以同样的错误忽略它,应用程序仍然无法构建。
-
你能改变你的变量 city:object;郊区:对象;到城市:任何;郊区:任何;
-
我试过了。在构建
Argument of type '() => void' is not assignable to parameter of type '(a: KeyValue<unknown, unknown>, b: KeyValue<unknown, unknown>时呈现略有不同的错误 -
你想明白了吗?我在使用 Angular 10 时遇到了完全相同的问题
标签: html angular typescript angular-pipe