Error: Converting circular structure to JSON

Error: Converting circular structure to JSON

我的申请有问题。谁能帮帮我?

错误: 将循环结构转换为 JSON

用于创建项目并保存在本地存储中的我的服务:

  addItem(item: Item): void {
    this.itens.unshift(item);
    let itens;
    if (localStorage.getItem('itens') == null){
      itens = [];
      itens.unshift(itens);
      localStorage.setItem('itens', JSON.stringify(itens));
    } else {
      JSON.parse(localStorage.getItem('itens'));
      itens.unshift(itens);
      localStorage.setItem('itens', JSON.stringify(itens));
    }
  }

还有我的component.ts

  addItem(): void  {
    this.itemAdicionado.emit({
      nome: this.nome,
      unidade: this.unidade,
      quantidade: this.quantidade,
      preco: this.preco,
      perecivel: true,
      validade: this.validade,
      fabricacao: this.fabricacao,
    });

    this.nome = '';
    this.unidade ;
    this.quantidade ;
    this.preco;
    this.validade;
    this.fabricacao;

    console.log(this.nome, this.unidade, this.quantidade, this.preco, this.validade, this.fabricacao);
  }
itens.unshift(itens);

这可能是:

itens.unshift(iten);

这不是 Angular 错误。这是 JavaScript 运行 函数抛出的 JSON.stringify 时间错误。该错误告诉您 itens 包含循环对象引用。当您 运行 应用程序时这没问题,但是当字符串化时它会导致问题:生成的 JSON 将变得无限长。

正如 Kevin Koelzer 在他的回答中指出的那样。问题是你写了itens.unshift(itens);。基本上,这会将项目数组添加到项目数组中,从而创建循环引用。因此,写 itens.unshift(item); 反而可以解决您的问题,并且可能是您打算做的事情。