【问题标题】:React-Native wait for AsyncStorage.getItem()React-Native 等待 AsyncStorage.getItem()
【发布时间】:2020-04-06 07:51:23
【问题描述】:

我面临的问题与以下链接中提到的完全一样:

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

希望从 AsyncStorage 加载并设置一些全局变量。因为其余页面取决于这些变量。

如果我使用 async awaitthen() 我仍然无法阻止其余页面在 global 变量之前呈现设置好了。

我尝试让每个组件异步,但不幸的是我无法让它正常工作。

主要是因为这行:

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

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

【问题讨论】:

    标签: react-native asyncstorage


    【解决方案1】:

    试试这个

    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>);
      }

    【讨论】:

    • 感谢 Marco,似乎禁止所有阻塞调用是 android / ios 的主要策略。添加启动画面是唯一的选择。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    • 2018-05-05
    • 2016-09-16
    • 2019-03-21
    • 1970-01-01
    相关资源
    最近更新 更多