问题描述:
由于Taro编译出来的小程序会增加一个 $component 的自身引用,所以在 AppData 进行序列化的时候会遇到自身的循环引用,然后默认的JSON.stringify 并不支持序列化循环引用的对象,并且工具也对这个异常没有进行处理,导致整个开发者工具一直报错卡死。
报错截图、相关bug:
/Applications/bytedanceide.app/Contents/Resources/app.asar.unpacked/simulator-sdk/temFiles/dist/preload/bgPreload.edaf793ea424a9e66185.js:29 Uncaught TypeError: Converting circular structure to JSON
at Object.stringify (<anonymous>)
at e.exports (/Applications/bytedanceide.app/Contents/Resources/app.asar.unpacked/simulator-sdk/temFiles/dist/preload/bgPreload.edaf793ea424a9e66185.js:29)
at /Applications/bytedanceide.app/Contents/Resources/app.asar.unpacked/simulator-sdk/temFiles/dist/preload/bgPreload.edaf793ea424a9e66185.js:192
at o (/Applications/bytedanceide.app/Contents/Resources/app.asar.unpacked/simulator-sdk/temFiles/dist/preload/bgPreload.edaf793ea424a9e66185.js:29)
复现步骤:
使用Taro随意开发一个小程序都能遇到该问题
联系方式:
yanglingfeng@wifi.com
建议修复方案:
1.使用 circular-json 这类支持循环引用的Stringify方案
2. 对这部分代码进行异常处理,不要让开发者工具的异常影响正常开发