Лучшее место для загрузки необходимых данных - непосредственно перед монтированием приложения.
Другими словами, нам следует отложить монтирование приложения до того, как будут собраны и установлены все «зависимости». Для этого нужны экраны spla sh - они действуют как единственный промежуточный экран между входом в приложение и первым активируемым экраном. Я бы скомбинировал их и отображал экран spla sh во время загрузки данных - когда он установлен и загружен, он ведет себя так, как было ранее установлено в определении AppContainer.
App. js
...
state: {
isLoadingComplete: false
}
componentDidMount = async() => {
//load all your async data & update the flag when finished
this.setState({isLoadingComplete: true})
}
...
render(){
if (!this.state.isLoadingComplete) {
...display your loading animation
} else {
<App/>
}
}
Само приложение, по крайней мере, большую часть времени для меня, по сути, представляет собой «switchNavigator» - отображает только один набор экранов в зависимости от вашего потока аутентификации и logi c.
Эта средняя статья предлагает интересное понимание темы экрана Spla sh и его назначения:
https://blog.mobile-patterns.com/splash-screen-designing-a-successful-launch-experience-for-your-mobile-app-b0b70a0ef32d
Надеюсь, это поможет.