2016-05-21 4 views
6

dopo che ho aggiornato reagire nativo 0,14-0,26 per la mia app iOS sono tenere sempre questa eccezione:Reagire Native: Eccezione generata durante l'esecuzione del blocco dell'interfaccia utente: mettere reactNavSuperviewLink indietro

*** errore di asserzione nel -RCTNavigator reactSuperview, /path_to_app/node_modules/react-native/React/Views/RCTNavigator.m:461 2016-05-20 20: 55: 43.217 [errore] [tid: main] [RCTUIManager.m: 1100] Eccezione generata durante l'esecuzione del blocco dell'interfaccia utente : put reactNavSuperviewLink back

Prima dell'aggiornamento non avevo questo problema. Sto usando NavigatorIOS.

Qualche consiglio su come risolvere il problema o quello di guardare anche a durante il debug è molto apprezzato

enter image description here

+0

Sei riuscito a risolvere questo @mark? –

+0

@ChrisEdwards ha appena pubblicato la mia soluzione, spero che aiuti – Mark

risposta

1

Quando stavo cercando di risolvere questo problema, in Reagire documenti nativi c'era una dichiarazione, che sono a conoscenza di milioni di bug di NavigatorIOS ma non stanno più lavorando sul componente in quanto Facebook non lo usa internamente, e hanno indicato to this library come alternativa per NavigatorIOS migliore. (allora questa libreria forniva solo la sostituzione di NavigatorIOS, ora aggiungevano poche altre gemme) Stavo per usarla, ma poi ho letto che il loro Navigator does not synchronize between JS and native, ecco perché invece di usare la libreria ho deciso di smettere di forzare la sincronizzazione tra JS e nativo in React's NavigatorIOS, che ha risolto il problema.

Ho finito per commentare RCTAssert(!_bridge.isValid || self.superview != nil, @"put reactNavSuperviewLink back"); in node_modules/react-native/React/Views/RCTNavigator.m.

So che è un problema, ma dal momento che React Native ha approvato this library e molte persone sono contente, mi sento come rispecchiare ciò che hanno implementato (non implementato) dovrebbe essere un po 'sicuro. Almeno ha funzionato per la mia app e non si sono verificati ulteriori bug.

+0

Ciao Mark, benvenuto su StackOverflow e grazie per la risposta. Ti dispiacerebbe modificare il tuo post per includere il codice pertinente, piuttosto che uno screenshot? Non è molto facile per gli altri copiare il codice da un'immagine;) Grazie! –

+0

Puoi collegarti a quella dichiarazione nei documenti React Native ??? – iconoclast

1

OK, nessuna risposta che includa "Commenta questa parte della libreria" è errata. Chiaro e semplice.

Il problema riscontrato è dovuto al fatto che il navigatore IOS ha impostato errato. Assicurati di non avere navigatori nidificati/in loop e di pulire il tuo codice.

Non abbiate fretta attraverso di essa o troverà più problemi come questo ... ricordare reagire nativa è giovane e le cose si romperà se si è avventato

+0

Sono d'accordo sul fatto che commentare la riga che causa l'errore è spesso pericoloso, ma ho aggiunto una spiegazione perché penso che in questo caso possa essere ok. Eppure hai torto che questo problema possa venire solo dall'introduzione errata di NavigatorIOS, NavigatorIOS è estremamente buggato e spesso causa problemi su di esso. – Mark

+0

La tua prima frase fa un reclamo e non offre giustificazione se non "Semplice e semplice". Non dovrebbe essere così difficile dimostrare che questa non è una grande idea, ma se è così "semplice e semplice", non dovresti essere in grado di dare una argomentazione di supporto, invece di fare solo un'asserzione? E piuttosto che l'affermazione semplicistica che è "sbagliato", perché non enumerare gli svantaggi di tale approccio. Questo sarebbe un contributo prezioso. – iconoclast

0

ho avuto quel problema quando si utilizza un TabBarIOS senza figli. L'ho risolto aggiungendo una vista vuota.

Prima: <TabBarIOS></TabBarIOS>

Dopo: <TabBarIOS><View /></TabBarIOS>

Speranza che aiuta.

0

Nel mio caso questo problema si è verificato a causa di dati del navigatore nella cache precedentemente memorizzati nel simulatore iPhone.

Se i dati memorizzati nella cache sono il problema, passare a un altro dispositivo di simulazione o eliminare l'app all'interno del simulatore risolverà il problema.

1

Dopo aver commentato la riga come indicato nel post successivo di @Mark, ho finito per ottenere un errore diverso Cannot adjust current top of stack beyond available views. Leggendo su un altro thread (React-native on IOS: cannot adjust current top of stack beyond available views) risulta che non stavo importando correttamente il componente che era in uso.Anche se questo è risultato essere un "errore utente" per mio conto, forse questo potrebbe spiegare altri account di questo errore.

Problemi correlati