我希望我的应用在使用expo的AppLoading组件渲染实际应用之前,先从Firebase数据库中获取所有数据。我将应用程序包装在提供程序中并调用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>
);
};