Реагирующее собственное ожидание AsyncStorage.getItem () - PullRequest
0 голосов
/ 06 апреля 2020

Я столкнулся с проблемой, точно такой же, как указано в ссылке ниже:

https://github.com/facebook/react-native/issues/8589

Wi sh для загрузки из AsyncStorage и установки нескольких глобальные переменные. Поскольку остальные страницы зависят от этих переменных.

Если я использую asyn c await или , то () Я все еще не могу остановить остальные страницы отрисовки до установки global переменных.

Я пытался сделать каждый компонент asyn c, но, к сожалению, я не могу заставить его работать как хорошо.

В основном из-за этой строки:

const _App = (props) => {
  return (
    <I18nextProvider i18n={i18next}>
        <App />
    </I18nextProvider>);
}

// registerComponent() can't accept anything that is Async
AppRegistry.registerComponent(appName, () => _App);

1 Ответ

1 голос
/ 06 апреля 2020

Попробуйте это

const _App = (props) => {
  const [loaded, setLoaded] = useState(false)

  useEffect(()=>{

    const functionName = async () => {
      await registerComponent()
      setLoaded(true)
    }

    functionName()
  },[])

  if(!loaded) return <View><Text>Some Fancy loading stuff here</Text></View>

    return (
      <I18nextProvider i18n={i18next}>
          <App />
      </I18nextProvider>);
  }
...