首页 > 解决方案 > Angular 中的 Visual Studio 代码:无法读取未定义的属性,如何修复?

问题描述

如何在 Angular 中获取任何数据类型并转换为已知数据类型?

我在下面有一个服务,接收一些服务数据,并想转换为 productDataClass 有{productId: int; productName: string;}

至少,我至少想要productId哪个是整数。

发送与此资源类似的数据,

https://jasonwatmore.com/post/2018/06/25/angular-6-communicating-between-components-with-observable-subject

public productDataClass: ProductDataClass;

this.productService.currentMessage.subscribe(currentMessage => {
  this.productDataClass = currentMessage

然后我尝试了这个,它不起作用 copyFromMessage 是any类型,

this.productService.currentMessage.subscribe(currentMessage => {
  this.copyFromMessage = currentMessage;
  this.productData = this.copyFromMessage.value;
  this.testString= this.productData.productName;

错误:

无法读取未定义的属性“productName”

基础服务:

export class ProductService{

  private messageSource = new Subject();
  currentMessage = this.messageSource.asObservable();

  constructor() { }

  changeMessage(currentMessage) {
    this.messageSource.next(currentMessage);
  }
}

还查看此资源: 可观察类型错误:无法读取未定义的属性

实物截图:

CurrentMessage 有实际数据,以下行显示未定义, 在此处输入图像描述

['value'] 仍然给出错误

在此处输入图像描述

标签: angulartypescriptangular8

解决方案


这是一个 javascript 运行时错误。

changeMessage()不使用此结构的对象调用{value: {productName: ...}}


推荐阅读