这是因为你序列化里面的对象存在循环引用导致的
以下这种情况,使用 JSON.stringify 就会报你这个错
var person = {
name: 'hi',
age: 3
}
person.info = person
JSON.stringify(person)
解决方法:将循环引用的对象进行处理
// 定义一个深拷贝的函数
var deepcopy = function() {
let cache = [];
let str = JSON.stringify(state, (key, value) => {
if (typeof value === 'object' && value !== null) {
if (cache.indexOf(value) !== -1) {
// 移除
return;
}
// 收集所有的值
cache.push(value)
}
return value
})
cache = null // 清空变量,便于垃圾回收机制回收
return str
}
// 先深拷贝,在序列化
JSON.stringify(deepcopy(person))