【发布时间】:2020-03-26 10:55:16
【问题描述】:
我在开发 Angular 应用程序时遇到了一个奇怪的问题。 我前段时间写了这段代码,它运行良好:
selectedGeoArea: any
receiveStoreEvent(event) {
switch (event.constructor) {
case City:
console.log("city")
break
case Province:
console.log("province")
break
case String:
console.log("region")
break
}
this.selectedGeoArea = event
}
现在,selectedGeoArea 然后作为输入传递给另一个组件
<text-search [selectedGeoArea]="selectedGeoArea"></text-search>
export class TextSearchComponent {
@Input() selectedGeoArea: any
buildQuery(): string {
switch (this.selectedGeoArea) {
case City:
return `${this.addressQuery}, ${this.selectedGeoArea.name}, ${this.selectedGeoArea.province.code}, ${this.selectedGeoArea.province.region}`
case Province:
return `${this.addressQuery}, ${this.selectedGeoArea.code}, ${this.selectedGeoArea.region}`
case String:
return `${this.addressQuery}, ${this.selectedGeoArea}`
}
return this.addressQuery
}
问题是buildQuery() 总是返回addressQuery 的值,这意味着开关根本不起作用。 selectedGeoArea 具有在 receiveStoreEvent() 中设置的正确值和类型。
我在这里错过了什么?
【问题讨论】:
-
switch (this.selectedGeoArea)->switch (this.selectedGeoArea.constructor)与您在第一块代码中的操作方式相同 -
哦,好尴尬
标签: javascript angular typescript switch-statement