2017-02-16 480 views
4

我们正在建设一个RN的应用程序(RN0.37),我们正在运行到哪里运行应用程序时,我们得到了一个“TypeError: JSON.stringify cannot serialize cyclic structures”的问题。阵营本地JSON.stringify不能序列周期性结构

相关的一切都没有改变对API响应和问题走了近来,但是又出现在一擦/重建(由无关的问题触发)。

我的怀疑是周围的人所使用的一对夫妇的包:“react-native-router-flux”和“react-native-permissions”,但我一直没能找到相关的东西在应用程序

目前围绕我的怀疑“react-。本地路由器通量”,主要是基于这篇文章围绕:https://github.com/aksonov/react-native-router-flux/issues/363

而且我怀疑围绕‘反应母语的权限’主要是建立在这样一个事实:这个项目列入这个包的时间是可疑的,并似乎与这个错误的表面相吻合 - 尽管我无法用绝对的确定性证明这一点。

唯一的额外线索我有,就是JSON.stringify错误似乎总是被警告的名单之前。他们都读“这种合成事件出于性能的考虑重用。如果你看到这一点,你所访问的一个发布/作废合成事件的性质,这是设置为null。如果你必须围绕保持原有的合成事件,请使用event.persist()。有关更多信息,请参阅https://facebook.github.io/react/docs/events.html#event-pooling。“的例子不胜枚举如(以相同的顺序总是)如下:nativeEvent,类型,目标,currentTarget当前,的EventPhase,气泡,或取消,时间戳,defaultPrevented,isTrusted和touchHistory。

以下是我的package.json:

"dependencies": { 
    "blueimp-md5": "2.5.0", 
    "moment": "2.16.0", 
    "phone-formatter": "0.0.2", 
    "react": "15.3.2", 
    "react-native": "0.37.0", 
    "react-native-asset-library-to-base64": "1.0.1", 
    "react-native-aws3": "0.0.3", 
    "react-native-button": "1.7.1", 
    "react-native-cached-image": "1.2.2", 
    "react-native-camera-kit": "4.0.1", 
    "react-native-camera-roll-picker": "1.1.9", 
    "react-native-contacts": "0.5.2", 
    "react-native-fbsdk": "0.4.0", 
    "react-native-fetch-blob": "0.10.0", 
    "react-native-fs": "2.0.1-rc.2", 
    "react-native-geocoder": "0.4.5", 
    "react-native-image-crop-picker": "0.10.5", 
    "react-native-image-resizer": "0.0.12", 
    "react-native-nav": "1.1.4", 
    "react-native-permissions": "0.2.5", 
    "react-native-photo-view": "1.2.0", 
    "react-native-router-flux": "3.37.0", 
    "react-native-stripe": "1.2.1", 
    "react-native-swipe-list-view": "0.3.1", 
    "react-redux": "4.4.6", 
    "redux": "3.6.0", 
    "redux-storage": "4.1.1", 
    "redux-storage-engine-reactnativeasyncstorage": "1.0.2", 
    "underscore": "1.8.3" 
} 
+0

您是否可能将一个循环对象记录到控制台,然后将其序列化? – G0dsquad

+0

我们发现问题一直存在,其间歇性的原因与在仿真器上启用Javascript调试功能有关。仍然不确定问题是什么。 –

回答

1

JSON.stringify不能处理具有自身的或本身的部分的参考JSON对象。

Link

我做了懒惰的一个简单的库,覆盖JSON.stringify(),以允许它处理循环引用不会产生异常。它可以防止您在第三方库中更改有关此限制的任何内容。在代码的引导处安装它。

Link 2