2016-05-21 4 views
6
setzen

Nachdem ich india aktualisiert Reagieren 0,14 bis 0,26 für meine IOS App Ich halte mich diese Ausnahme erhalten:Reagieren Nativ: Exception geworfen während der Ausführung von UI-Block: reactNavSuperviewLink

*** Assertionsfehler in -RCTNavigator reactSuperview, /path_to_app/node_modules/react-native/React/Views/RCTNavigator.m:461 2016-05-20 20: 55: 43.217 [Fehler] [tid: main] [RCTUIManager.m: 1100] Ausnahme beim Ausführen des UI-Blocks ausgelöst : put reactNavSuperviewLink zurück

Vor dem Upgrade hatte ich dieses Problem nicht. Ich verwende NavigatorIOS.

Irgendwelche Tipps, wie man es beheben oder was auch zu sehen, während das Debuggen ist sehr zu schätzen gewusst

enter image description here

+0

Haben Sie es geschafft, dieses @mark zu lösen? –

+0

@ChrisEdwards hat gerade meine Lösung gepostet, hoffe es hilft – Mark

Antwort

1

Wenn ich dieses Problem zu lösen versuchte, in der india docs Reagieren es eine Aussage war, dass Sie sind sich über Millionen Bugs von NavigatorIOS im Klaren, arbeiten aber nicht mehr an der Komponente, da Facebook sie nicht intern verwendet und sie zeigten to this library als Alternative für besseres NavigatorIOS. (Damals bot diese Bibliothek nur Ersatz für NavigatorIOS, jetzt fügten sie noch ein paar weitere Edelsteine ​​hinzu) Ich wollte es benutzen, aber dann las ich ihren Navigator does not synchronize between JS and native, deshalb entschied ich, anstatt die Bibliothek zu verwenden, die Synchronisation zwischen zu erzwingen JS und nativ in React's NavigatorIOS, was das Problem gelöst hat.

Ich endete auskommentieren RCTAssert(!_bridge.isValid || self.superview != nil, @"put reactNavSuperviewLink back"); in node_module/react-native/React/Ansichten/RCTNavigator.m.

Ich weiß, es ist eine Arbeit herum, aber seit React Native genehmigt this library, und viele Leute sind glücklich mit, ich fühle mich wie Spiegeln, was sie implementiert (nicht implementiert) sollte etwas sicher sein. Zumindest funktionierte es für meine App und es traten keine weiteren Fehler auf.

+0

Hallo Markus, willkommen bei StackOverflow und danke für deine Antwort. Würde es Ihnen etwas ausmachen, Ihren Beitrag so zu bearbeiten, dass er den relevanten Code und nicht einen Screenshot enthält? Es ist nicht sehr einfach für andere, Code von einem Bild zu kopieren;) Danke! –

+0

Können Sie in der React Native-Dokumentation auf diese Anweisung verlinken? – iconoclast

1

Okay nein, jede Antwort, die "Kommentar aus diesem Teil der Bibliothek" enthält, ist falsch. Schlicht und einfach.

Das Problem, das Sie haben, ist eine von Ihnen navigatorIOS falsch eingerichtet. Stellen Sie sicher, dass Sie keine verschachtelten/loopenden Navigatoren haben und bereinigen Sie Ihren Code.

Hetzen durch sie nicht, oder Sie werden mehr Fragen wie diese finden ... erinnern reagieren nativer YOUNG ist und die Dinge werden brechen, wenn Sie

+0

Ich stimme zu, dass das Auskommentieren der Zeile, die den Fehler verursacht, oft gefährlich ist, aber ich fügte eine Erklärung hinzu, warum ich denke, dass es in diesem Fall in Ordnung sein kann. Aber Sie irren sich, dass dieses Problem nur durch falsches Einrichten von NavigatorIOS entstehen kann, NavigatorIOS ist extrem fehlerhaft und verursacht oft Probleme, wenn es an ist. – Mark

+0

Ihr erster Satz macht einen Anspruch und bietet keine Rechtfertigung außer "Plain and simple". Es sollte nicht schwer sein zu behaupten, dass dies keine großartige Idee ist, aber wenn es so "schlicht und einfach" ist, sollten Sie dann nicht in der Lage sein, ein unterstützendes Argument zu geben, anstatt nur eine Behauptung zu machen? Und anstatt die vereinfachende Behauptung, dass es "falsch" ist, warum nicht die Nachteile dieses Ansatzes aufzählen. Das wäre ein wertvoller Beitrag. – iconoclast

0

rücksichtslos sind hatte ich das Problem, wenn ein TabBarIOS ohne Kinder verwenden. Ich habe es behoben, indem ich eine leere Ansicht hinzugefügt habe.

Vorher: <TabBarIOS></TabBarIOS>

Nach: <TabBarIOS><View /></TabBarIOS>

Hoffe, es hilft.

0

In meinem Fall trat dieses Problem aufgrund der zuvor zwischengespeicherten Navigationsdaten im iPhone-Simulator auf.

Wenn zwischengespeicherte Daten das Problem sind, dass das Umschalten auf ein anderes Simulatorgerät oder das Löschen der App im Simulator das Problem löst.

1

Nach dem Auskommentieren der Zeile, wie im Folgepost von @Mark angegeben, bekam ich einen anderen Fehler Cannot adjust current top of stack beyond available views. Wenn ich einen anderen Thread (React-native on IOS: cannot adjust current top of stack beyond available views) gelesen habe, stellte sich heraus, dass ich die verwendete Komponente nicht richtig importiert habe.Obwohl sich dies in meinem Namen als ein "Benutzerfehler" herausgestellt hat, könnte dies möglicherweise andere Fehler erklären.

Verwandte Themen