TypeError 在 Angular

问题描述

我正在使用 getter 和 setter 从网络缓存中设置一个字段,但是当我尝试使用 setter 时,我得到了 TypeError错误是:

ERROR TypeError: this.saveCache is not a function

getter 和 setter 如下:

    get saveCache (): any {
        if (localStorage.getItem('saveCache') === null) {
          return null;
        }
        return JSON.parse(localStorage.getItem('saveCache'));
      }
      
      set saveCache(value:any) {
        localStorage.setItem('saveCache',JSON.stringify(value));
      }

当我尝试设置 saveCache 字段时,出现上述错误。我该如何解决这个问题?

在这里添加一个错误示例:

https://stackblitz.com/edit/angular-ivy-cryfvb?file=src%2Fapp%2Fapp.component.ts

解决方法

必须按如下方式使用 setter:

this.saveCache = this.fruits;

而不是this.saveCache(this.fruits);