&白帝& 2024-12-11 12:00 采纳率: 100%
浏览 52
已结题

Converting circular structure to JSON


TypeError: Converting circular structure to JSON
    --> starting at object with constructor 'kc'
    |     property 'subs' -> object with constructor 'Object'
    --- property 'dep' closes the circle
    at stringify (<anonymous>)
    at y (index-DXHQc27t.js:30:51838)
    at index-DXHQc27t.js:22:2683
    at qa (index-DXHQc27t.js:14:38)
    at kn (index-DXHQc27t.js:14:109)
    at Wc.i.call (index-DXHQc27t.js:14:33736)
    at b (index-DXHQc27t.js:10:15808)
    at qa (index-DXHQc27t.js:14:46)
    at om (index-DXHQc27t.js:14:1835)

部署到线上后,浏览器控制台会出现这种问题,怎么解决

  • 写回答

29条回答 默认 最新

  • 2401_86599748 2024-12-12 14:30
    关注
    import { createPinia } from "pinia";
    import { createPersistedStatePlugin } from "pinia-plugin-persistedstate-2";
    import localforage from "localforage";
    // https://pinia.vuejs.org/zh
    export function useStore(app) {
      // 初始化状态管理
      const pinia = createPinia();
      function safeStringify(obj) {
        const seen = new WeakSet();
        return JSON.stringify(obj, (key, value) => {
          if (typeof value === 'object' && value !== null) {
            if (seen.has(value)) {
              return;  // 发现循环引用时返回 undefined
            }
            seen.add(value);
          }
          return value;
        });
      }
      // 启用持久化插件
      pinia.use(
        createPersistedStatePlugin({
          // storage: localforage,
          serialize: (value) => {
            // 确保返回的是一个序列化的普通对象
            return safeStringify(value);
          },
          deserialize: (value) => {
            // 确保反序列化为普通对象
            return JSON.parse(value);
          },
        })
      );
    
      // 注册状态管理
      app.use(pinia);
    }
    
    
    

    你这个问题应该是store里面的数据存在循环引用的问题,试一下上面的代码,看看能解决吗

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(28条)

报告相同问题?

问题事件

  • 系统已结题 12月20日
  • 已采纳回答 12月12日
  • 创建了问题 12月11日