我正在构建一个React-Native应用,每当我在Android模拟器上运行它时,都会出现此错误:
对象作为React子对象无效(找到:带有键的对象 {$$ typeof,类型,键,引用,道具,_owner,_store})。如果你想 渲染孩子的集合,请改用数组。 throwOnInvalidObjectType D:\ rn \ manager \ node_modules \ react-native \ Libraries \ Renderer \ ReactNativeRenderer-dev.js:7436:6
由于此错误对我没有任何意义,因此我决定在Chrome中启用“远程调试JS”,以查看是否可以理解我的错误。但是启用“远程调试”后,错误消失了。
如果我构建项目并将应用程序安装在真实设备上,则错误会再次出现。
但是我感觉自己陷入了22个陷阱,因为如果我尝试调试,则不会出错,而如果关闭调试,则会出错。
总有办法解决这个问题吗?
谢谢!
答案 0 :(得分:1)
该错误提到您不应该在render()方法中使用对象。由于您未发布任何代码,因此可以执行以下操作: 继续从render()方法中删除元素,直到不再收到错误为止。一旦消失,请开始放回代码,直到再次遇到该错误为止。导致错误的代码将是或返回对象,例如可能是拼写错误导致返回对象而不是例如字符串。
答案 1 :(得分:0)
TL; DR:已停止使用firebase并改为使用react-native-firebase
对我来说,问题不是我的任何组件或类中的render方法。在尝试了上述答案后,我意识到基本上删除了所有文件,只剩下一个文件。我更改了render方法以在一个视图中显示文本,但是仍然出现错误。
然后我开始一个接一个地删除要在该文件中导入的模块,发现这是Firebase模块卸载的firebase和安装的react-native-firebase。