2017-10-11 1 views
1

Wenn in unserer App einer unserer API-Aufrufe angibt, dass der Benutzer nicht autorisiert ist, gehen wir davon aus, dass der Benutzer abgemeldet ist und sie zum Anmeldebildschirm zurückführt. Aufgrund der Hintergrundaktualisierung auf Basis von Web-Sockets usw. kann dies jederzeit passieren ... auch wenn auf dem Bildschirm eine beliebige Anzahl nativer dialogeartiger Komponenten angezeigt wird, einschließlich Warnungen, Android-Datum/Uhrzeit-Auswahl, iOS-Aktionsbögen, Kameraauswahl usw. Gibt es eine Möglichkeit, sicherzustellen, dass diese Dinge bei einem solchen Ereignis nicht stattfinden?Programmatisch alle React Native Modal Alerts/Dialoge ablehnen?

Nicht sicher über all diese, aber ich kann bestätigen, dass Warnungen, Action-Sheets und die Kameraauswahl-Benutzeroberfläche auf dem Bildschirm in iOS bleiben, nachdem eine Ansicht vom Stapel in React Navigation entfernt wurde. Es wurde in einigen Fällen vorgeschlagen, eine reine JavaScript-Komponente zu erstellen, um einige dieser systemeigenen Modalitäten zu ersetzen (wie eine Überlagerung über einer Ansicht, die wie eine Warnung aussieht, aber tatsächlich nur ein Kind der aktuellen Ansicht ist). Es scheint jedoch unmöglich/sehr schwierig zu sein, 100% dieser nativen Modalkomponenten zu ersetzen. Selbst wenn ich das Warn- und das Aktionsblatt ersetze, bleibt mir die Kamera/Fotoauswahl, und ich möchte wirklich nicht meine eigene Version davon erstellen.

Antwort

0

Dies könnte helfen - React Native v0.50.0 fügt eine onDismiss Requisite zu Modal hinzu, mit der Sie eine Funktion übergeben können, die aufgerufen wird, sobald das Modal beendet wurde.

Schauen Sie sich die aktualisierten docs hier: http://facebook.github.io/react-native/releases/0.51/docs/modal.html#ondismiss

Und wenn Sie neugierig sind hier die PR, die die Änderung vorgenommen hat: https://github.com/facebook/react-native/commit/a389ffbd84224b583e71cf7c1468409cbc91ec8e

Verwandte Themen