TypeError: Converting circular structure to JSON
报错原因:
一般报错TypeError: Converting circular structure to JSON是因为存在循环引用,并且使用JSON.stringify方法去转化成字符串
报错实例
const x = { a: 8 };
const b = { x };
b.y = b; // 循环引用
console.log('循环引用', b.y)
JSON.stringify(b); // 触发报错
此时打印出来的b.y如图:
解决方案
const x = { a: 8 };
const b = { x };
b.y = JSON.parse(JSON.stringify(b)); // 隐式深拷贝,主要实现深拷贝,解除循环引用
console.log('循环引用', b.y)
JSON.stringify(b);
此时打印出来的b.y如图
总结:就是对需要JSON.stringify()的循环引用先进行一次深拷贝再转换就好了