首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Typescript:打开对象类型不工作

Typescript:打开对象类型不工作
EN

Stack Overflow用户
提问于 2020-03-26 18:55:17
回答 1查看 36关注 0票数 0

我在开发一个angular应用程序时遇到了一个奇怪的问题。我在一段时间前写了这段代码,它工作得很好:

代码语言:javascript
复制
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将作为输入传递给另一个组件

代码语言:javascript
复制
<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的值,这意味着开关根本不工作。与receiveStoreEvent()中设置的一样,selectedGeoArea具有正确的值和类型。

这里我漏掉了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-26 19:04:00

您需要执行以下操作

代码语言:javascript
复制
this.selectedGeoArea = event.constructor

或以下内容

代码语言:javascript
复制
switch (this.selectedGeoArea.constructor) {
  .
  .
  .
}

在最初的函数中,您匹配的是event.constructor,但在新函数中,您只匹配event

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60865631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档