2016-08-22 7 views
8

Ich überlagere die folgende Modal Komponente in meiner iOS App, während ich darauf warte, dass mehrere asynchrone Anfragen zurückkommen.React Native Modal nicht schließen

this.state.visible wird auf false gesetzt, sobald alle Anfragen zurückgegeben wurden. In etwa 50% der Fälle bleibt das Modal jedoch unbegrenzt auf dem Bildschirm, auch wenn die Anfragen zurückkommen. Ich habe this.state.visible am oberen Rand meiner Renderfunktion geloggt und es ist falsch wie erwartet, aber das Modal verschwindet nicht. Irgendwelche Gedanken, warum dies passieren könnte?

+0

Haben Sie irgendwelche Lösungen gefunden? Es scheint, Problem existiert immer noch –

+0

Haben Sie irgendwelche Lösungen gefunden? –

+1

Können Sie den gesamten Code der Datei posten? –

Antwort

1

Vielleicht war es das gleiche Problem, mit dem ich hier konfrontiert bin.

ich dieses Problem bekommen, wenn ein modaler schließen und eine andere Öffnung, einige Leute werden immer dies mit einem modalen und eine Warnung ...

https://github.com/facebook/react-native/issues/10471

Vorerst ist die Lösung ein Timeout vor der Aktion (600ms sollte es lösen).

+0

Hinzufügen eines Codebeispiels wäre toll ;-) – Fabien

+0

Das ist etwas, das sich sehr wahrscheinlich in vielen verschiedenen Situationen ändern wird. In meinem Fall verwende ich 'redux-saga' und setze' yield delay (600) 'vor der Aktion, die die modale Sichtbarkeit ändert. Wenn Sie nur den 'state' setzen, können Sie etwas wie' setTimeout (() => this.setState ({visible: true}), 600) 'machen. Aber ich denke wirklich, dass Sie Ihren Code im Allgemeinen betrachten sollten, vielleicht gibt es einen besseren Weg. –