React Native - просмотры Android перекрываются при запуске

В моем App.js у меня сейчас есть этот код в функции рендеринга, который условно отображает два навигатора стека (React Navigation).

Код работает и отлично отображается в iOS.

Он также работает на Android, но по какой-то причине в обоих случаях он показывает, что оба представления перекрывают друг друга на долю секунды.

Кто-нибудь знает, как я могу избежать этого дублирования взглядов?

constructor(props) {
    super(props);
    this.state = {
        isLoadingComplete: false,
        firstLaunch: null,
    };
}

render() {
    if (!this.state.isLoadingComplete) {
        return (
            <AppLoading
                startAsync = {this._loadResourcesAsync}
                onError = {this._handleLoadingError}
                onFinish = {this._handleFinishLoading}
            />
        );
    } else {
        return !this.state.firstLaunch ? <OnboardingStack /> : <MainStack />;
    }
}
1
0
121
1

Ответы 1

Рендеринг условно работает нормально, если вы пойдете следующим образом.

    render() {
        if (!this.state.isLoadingComplete) {
           return (
               <AppLoading
                  startAsync = {this._loadResourcesAsync}
                  onError = {this._handleLoadingError}
                  onFinish = {this._handleFinishLoading}
               />
    );
}
return !this.state.firstLaunch ? <OnboardingStack /> : <MainStack />;
return (
 <View>
  <ActivityIndicator />
 </View>
)

Спасибо, но, к сожалению, результат такой же. Он все еще может видеть Onboarding (на долю секунды), а затем MainStack отображается поверх

200gSoft 28.05.2018 15:09

Он проверяет условие if за эту долю секунды. Так что, пока это не произойдет, вы можете поставить activityIndicator .. например, просто поставить return (<View> <ActivityIndicator> </View>)

Pravin 28.05.2018 15:15

Другие вопросы по теме