【问题标题】:how do I check the data from AsyncStorage in native react?如何在本机反应中检查来自 AsyncStorage 的数据?
【发布时间】:2020-07-26 13:48:34
【问题描述】:

如何在本机反应中检查来自 AsyncStorage 的数据? 我在本地存储中有这样的数据

idKecamatan"3"
namaKecamatan"Jagakarsa, Jakarta Selatan, DKI Jakarta..."

我想判断数据是否存在则输入第一个条件,如果数据不存在则输入第二个条件,请问如何判断?

假设是这样的

if(dataFromLocal !== null){
  return navigation.replace('MainApp')
else {
  return navigation.replace('CurrentLocation')
}

这是条件的函数

 const getAppToken = () => {
    const post = {
      user: 'dummy',
      secret: 'dummy'
    }

    api.post('/v1/mp/authenticate', post)
      .then(async (res) => {
        const { Data, Message } = res.data
        if (Message === 'SUCCESS') {
          await AsyncStorage.setItem('app-token', Data.token)
          AsyncStorage.multiGet(['idKecamatan', 'namaKecamatan'], (err, stores) => {
            stores.map((result, i, store) => {
              let key = store[i][0]
              let val = store[i][1]
              console.log(key, val)
              if (key === null && val === null) {
                return navigation.navigate('CurrentLocation')
              } else {
               return navigation.replace('MainApp')
             }
            })
          })
        }
      })
  }

【问题讨论】:

    标签: reactjs routes react-native-android asyncstorage


    【解决方案1】:

    试试这个:

    navigation.navigate(dataKecamatan.idKecamatan ? 'MainApp' : 'CurrentLocation');
    

    【讨论】:

    • 是的,就是前面的例子,但是数据不是来自state,而是来自asyncstorage,我可以从asyncstorage中取数据,但是如何调理呢?
    • 你可以像这样创建一个函数:async retrieveData() { try { const data = await AsyncStorage.getItem('xxxx'); navigation.navigate(data?'MainApp' : 'CurrentLocation'); } 捕捉(错误) { console.log("错误"); } }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    • 2022-10-21
    相关资源
    最近更新 更多