Expo React Native - получение всех данных перед рендерингом приложения - PullRequest
1 голос
/ 26 мая 2020

Я хочу, чтобы мое приложение получало все данные из базы данных 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>
  );
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...