解决JSON.stringify Uncaught (in promise) TypeError: Converting circular structure to JSON

pushViewTags(state, route) {
			let backPathIndex = state.viewTags.findIndex(item => item.fullPath == router.options.history.state.back)
			let target = state.viewTags.find((item) => item.fullPath === route.fullPath)
			let isName = route.name
			if (!target && isName) {
				if (backPathIndex == -1) {
					state.viewTags.push(route)
				} else {
					state.viewTags.splice(backPathIndex + 1, 0, route)
				}
			}
			localStorage.setItem('viewTags', JSON.stringify(state.viewTags)) //报错地方
		},

报错JSON.stringify的对象存在循环引用,在将对象进行json序列化的时候就会报错

解决办法:

   插件与第三方库

  • circular-json
  • circular-json 是一个可以处理 JSON 串中循环引用对象的 npm 包。在前端开发中,有时候会遇到一些复杂的数据结构,其中包含循环引用,而 JSON.stringify() 方法在处理该类数据时会抛出 TypeError 错误。在这种情况下,circular-json 就可以处理了

    circular-json 提供了两个主要方法:stringify() 和 parse()。

 安装依赖

安装:npm install --save circular-json

上述错误代码修改:

localStorage.setItem('viewTags', CircularJSON.stringify(state.viewTags))

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值