В моем 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 />;
}
}
Рендеринг условно работает нормально, если вы пойдете следующим образом.
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>
)
Он проверяет условие if за эту долю секунды. Так что, пока это не произойдет, вы можете поставить activityIndicator .. например, просто поставить return (<View> <ActivityIndicator> </View>)
Спасибо, но, к сожалению, результат такой же. Он все еще может видеть Onboarding (на долю секунды), а затем MainStack отображается поверх