在我的IOS应用程序将React Native从0.14升级到0.26之后,我一直得到这个例外:
*** -RCTNavigator中的断言失败reactSuperview,/ path_to_app / node_modules / last-native / React / Views / RCTNavigator.m:461 2016-05-20 20:55:43.217 [错误] [tid:main] [RCTUIManager.m:1100]执行UI块时抛出异常:将reactNavSuperviewLink返回
在升级之前我没有遇到这个问题。我正在使用NavigatorIOS。
非常感谢有关如何修复它或在调试时甚至看什么的任何建议
答案 0 :(得分:2)
当我试图解决这个问题时,在React Native文档中有一个声明,他们知道NavigatorIOS的百万个错误但不再处理该组件,因为facebook没有在内部使用它,他们指出to this library作为更好的NavigatorIOS的替代方案。 (当时这个库只提供了NavigatorIOS的替换,现在他们添加了更多宝石)我打算使用它,但后来我读了他们的导航器does not synchronize between JS and native,这就是为什么而不是使用库我做出的决定在React的NavigatorIOS中停止强制JS和native之间的同步,这解决了这个问题。
我最终在node_modules / react-native / React / Views / RCTNavigator.m中评论RCTAssert(!_bridge.isValid || self.superview != nil, @"put reactNavSuperviewLink back");
。
我知道这是一个解决方法,但是自从React Native批准this library以来,很多人都很满意,我觉得他们所实现的(未实现的)应该是安全的。至少它适用于我的应用程序,没有发生进一步的错误。
答案 1 :(得分:2)
好的不,任何包含“注释掉这部分图书馆”的答案都是错误的。干净利落。
您遇到的问题是导航设置错误。确保您没有任何嵌套/循环导航器并清理代码。
不要急于通过它,否则你会发现更多这样的问题...记得当地人是年轻人,如果你是鲁莽的话,事情就会破裂
答案 2 :(得分:1)
在@Mark的后续帖子中指出该行后,我最终得到了一个不同的错误Cannot adjust current top of stack beyond available views
。读取另一个线程(React-native on IOS: cannot adjust current top of stack beyond available views)后发现我没有正确导入正在使用的组件。虽然这对我来说是“用户错误”,但也许这可能解释了其他有关此错误的说法。
答案 3 :(得分:0)
使用没有孩子的TabBarIOS时遇到了这个问题。我通过添加一个空视图来修复它。
之前:<TabBarIOS></TabBarIOS>
之后:<TabBarIOS><View /></TabBarIOS>
希望它有所帮助。
答案 4 :(得分:0)
在我的情况下,由于iPhone模拟器中先前缓存的导航器数据而出现此问题。
如果缓存数据是问题,切换到另一个模拟器设备或在模拟器中删除应用程序将解决问题。