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);
反而可以解决您的问题,并且可能是您打算做的事情。
我的申请有问题。谁能帮帮我?
错误: 将循环结构转换为 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);
反而可以解决您的问题,并且可能是您打算做的事情。