簡體   English   中英

Angular TypeError 無法設置未定義的屬性“數據”

[英]Angular TypeError cannot set property 'Data' of undefined

在我的代碼中,我在 ngOnInit 中調用此操作,以便在頁面重新打開時能夠看到以前編輯的數據。 StickerData是 IStickerData 的一個屬性,它是一個接口。 我不斷得到

ERROR TypeError: Cannot set property 'StickerData' of undefined
at SafeSubscriber._next (sticker-preview.component.ts:54)
    at SafeSubscriber.__tryOrUnsub (Subscriber.js:183)
    at SafeSubscriber.next (Subscriber.js:122)
    at Subscriber._next (Subscriber.js:72)
    at Subscriber.next (Subscriber.js:49)
    at FinallySubscriber._next (Subscriber.js:72)
    at FinallySubscriber.next (Subscriber.js:49)
    at CatchSubscriber._next (Subscriber.js:72)
    at CatchSubscriber.next (Subscriber.js:49)
    at MapSubscriber._next (map.js:35)

subscribe((response: any) => this._stickerData.StickerData = response); 當我打開頁面時。 我在這里想念什么?

TS:

private _stickerData: IStickerData;
Filter: IFilter;

@Input()
  set StickerData(prm: IStickerData) {
      if (this._stickerData != prm) {
          this._stickerData = prm;
      }
  }
  get StickerData(): IStickerData {
      return this._stickerData;
  }

 ngOnInit() {
    this._productionService.getStickerDataList(this.Filter)
    .subscribe((response: any) => this._stickerData.StickerData = response);
    
  }

服務TS:

getStickerDataList(data: IFilter): Observable<IStickerData[]> {
        return this._http.post("Production/GetStickerDataList", data);
    }

您需要在訪問它的屬性之前初始化變量。

private _stickerData: IStickerData = Object.create(null);

現在看起來變量this.Filter在發送到服務之前也未定義。

您正在執行this._stickerData.StickerData = [...]this._stickerData未初始化,因此其值為undefined

您可能希望添加一個默認值:

private _stickerData: IStickerData = {};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM