【问题标题】:Angular map the object角度映射对象
【发布时间】:2021-10-31 17:30:45
【问题描述】:

我试图只获取validationTypeId、validationType。但不工作

   this.accessDService.getValidationDetails().subscribe((result) => {
          this.accessDValidationDetails = result;
          if (!result) return;
          this.validationD = result.map(({ validationTypeId, validationType }) => ({ validationTypeId, validationType }));
这里是我的回复正文 { “身份证”:32, “验证类型 ID”:2, “accessDeviceId”:57, “折扣值”:0, “分钟”:15, “验证类型”:“折扣” }

【问题讨论】:

  • 1. 您不能从订阅回调中return2. 实施中的错误究竟是什么?
  • 那么如何从订阅回调中返回呢?错误是“结果”中不存在属性映射
  • Q1. 订阅回调是异步的。不能从订阅内部返回变量。您需要在需要响应的地方订阅。有关异步数据的更多信息,请参阅 here第二季度。 JS Array#map 函数只能在数组上调用。检查result 是否为数组。

标签: javascript angular typescript mapping


【解决方案1】:

如果你从响应中只得到一个对象,你不能在这里使用mapmap 只能用于数组。

很简单:

this.validationID = {validationTypeId: result.validationTypeId, validationType: result.validationType}

编辑:

那么也许这会有所帮助:

import { map } from "rxjs/operators"; 

result.pipe(map(item => this.validationD.push({validationTypeId: item.validationTypeId, validationType: item.validationType})))

【讨论】:

  • 已编辑答案,您可以立即尝试
  • 谢谢!!我尝试了这种简单的方法,并且有效。 this.validationTypeLists = this.ValidationType.map(({ id, name }) => ({ id, name }));
猜你喜欢
  • 2021-08-02
  • 1970-01-01
  • 2019-07-30
  • 2020-02-07
  • 1970-01-01
  • 1970-01-01
  • 2020-11-29
  • 1970-01-01
  • 2019-09-19
相关资源
最近更新 更多