Я хочу, чтобы мое приложение получало все данные из базы данных firebase перед рендерингом фактического приложения с помощью компонента AppLoading из expo. Я заключаю свое приложение в провайдер и вызываю fetchCoreData (), однако приложение все еще загружается, даже если состояние контекста не завершено.
Мне интересно, есть ли способ заставить его быть полностью загруженным перед рендерингом приложения.
Спасибо.
const App = () => {
const [isReady, setIsReady] = React.useState(false);
const { fetchCoreData } = React.useContext(CoreDataContext);
const _cacheResourceAsync = async () => {
await Font.loadAsync({
Roboto: require('native-base/Fonts/Roboto.ttf'),
Roboto_medium: require('native-base/Fonts/Roboto_medium.ttf'),
...Ionicons.font,
});
fetchCoreData();
};
if (!isReady) {
return (
<AppLoading
startAsync={_cacheResourceAsync}
onFinish={() => setIsReady(true)}
onError={console.warn}
/>
);
}
return <Index />;
};
export default () => {
return (
<CoreDataProvider>
<App />
</CoreDataProvider>
);
};