我可以在React Native的ComponentDidMount内部使用带有异步等待功能的函数吗?

问题描述 投票:0回答:1

我在React Native中使用AsyncStorage.getItem

应用程序加载后,我想使用AsyncStorage.getItem将保存的数据保存到设备存储器中。我想到了使用ComponentDidMount()。因此,一旦加载了组件,我想自动运行AsyncStorage.getItem并将数据保存到数组DATA中。这样,用户将不会按任何按钮来开始渲染保存在设备内存中的内容。

我使用了下面的代码,但是没有看到任何console.log活动。但是console.log可以在同一程序的其他页面上使用。似乎ComponentDidMount()没有执行。

谢谢!

 componentDidMount(){
    async () => { 
      try {
        const HomeData = await AsyncStorage.getItem('@MyApp_Homekey')
        return HomeData
      } catch (e) {
        console.log('There was error.')
      }

      if(!HomeData){
        console.log('There are no Dimmer Light saved in the memory.')
      }
      else {
        console.log('There is value in data after getItem.')
        this.setState(DATA = HomeData)
      }
    }
react-native async-await asyncstorage
1个回答
0
投票

在注释中提到,您应该对componentDidMount使用async为:-


  componentDidMount = async () => {

    const HomeData = await AsyncStorage.getItem('@MyApp_Homekey')

    if(!HomeData){
      console.log('There are no Dimmer Light saved in the memory.')
    }
    else {
      console.log('There is value in data after getItem.')
      this.setState(DATA = HomeData)
    }
  }
© www.soinside.com 2019 - 2024. All rights reserved.