2016-08-22 20 views
8

Nakładam następujący komponent Modal w mojej aplikacji na iOS, czekając na powrót kilku żądań asynchronicznych.Reaktywny moduł natywny nie zamykający się

<Modal transparent={true} visible={this.state.visible}> 
    <View style={{flex: 1}}> 
     <ActivityIndicator color="white" size="large"/> 
    </View> 
</Modal> 

this.state.visible jest ustawiona na false, gdy wszystkie żądania zostały zwrócone. Jednak około 50% czasu modalnego pozostaje na ekranie w nieskończoność, nawet po otrzymaniu żądań. Zalogowałem this.state.visible na górze mojej funkcji renderowania i jest ona fałszywa zgodnie z oczekiwaniami, ale modal nie znika. Wszelkie przemyślenia, dlaczego tak się dzieje?

+0

Czy znalazłeś jakieś rozwiązanie? Wydaje się, że problem nadal istnieje –

+0

Czy znalazłeś jakieś rozwiązanie? –

+1

Czy możesz opublikować cały kod pliku? –

Odpowiedz

1

Być może to był ten sam problem, z którym mam do czynienia.

mam ten problem przy zamykaniu i otwieraniu modal jeden drugiego, niektórzy ludzie są coraz to z modalnego i wpisu ...

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

Na razie rozwiązanie to czas oczekiwania przed działaniem (600 ms powinno to rozwiązać).

+0

Dodanie przykładu kodu byłoby wspaniałe ;-) – Fabien

+0

Jest to bardzo prawdopodobne, że zmieni się w wielu różnych sytuacjach. W moim przypadku, używając 'redux-saga' ustawiam' yield delay (600) 'przed akcją, która zmienia widoczność modalną. Jeśli właśnie ustawiasz 'stan' możesz zrobić coś takiego jak' setTimeout (() => this.setState ({visible: true}), 600) '. Ale szczerze myślę, że powinieneś spojrzeć na swój kod w ogóle, być może jest lepszy sposób. –

Powiązane problemy