AsyncStorage.getItem()似乎不起作用

时间:2020-08-25 07:10:06

标签: javascript reactjs react-native asyncstorage

当我尝试通过AsyncStorage.getItem()设置值时,我无法要求它返回。

message.channel.send(`the current number is:  ${number}`).then(message => {
    message.react('1️⃣')
    message.react('2️⃣')
    message.react('3️⃣')
});

const filter = (reaction, user) => {
    return ['1️⃣', '2️⃣','3️⃣'].includes(reaction.emoji.name)
        && user.id === message.author.id;
}

message.awaitReactions(filter, { max: 1, time: 20000, errors: ['time'] })
    .then(collected => {
        const reaction = collected.first();
        if (reaction.emoji.name === '1️⃣') {
            message.reply('you reacted with 1');
        } else if (reaction.emoji.name === '2️⃣') {
            message.reply('you reacted with 2');
        } else {
            message.reply('you reacted with 3');
        }
    })
    .catch(collected => {
        message.reply('game has ended');
    });

我已经设置了如下项目

let tokenData = null;
const getData = async () => {
  let token;
  try {
    token = await AsyncStorage.getItem('token');
    tokenData = JSON.parse(token);
  } catch (e) {
    // error reading value
  }
};

2 个答案:

答案 0 :(得分:0)

如果要存储数据,则必须这样设置setItem:

  const storeData = async (key, value) => {
    try {
      await AsyncStorage.setItem(key, value);
    } catch (error) {
      console.log(error);
    }
  };

然后您可以使用getItem检索它,如下所示:

  const getData = async key => {
    try {
      const data = await AsyncStorage.getItem(key);
      if (data !== null) {
        console.log(data);
        return data;
      }
    } catch (error) {
      console.log(error);
    }
  };

答案 1 :(得分:0)

const setLoginLocal = async loginData => {
  try {
    let token = loginData.headers.authorization;
    let headerToken = ['token', JSON.stringify(token)];
    let user = ['user', JSON.stringify(loginData.data)];
    await AsyncStorage.setItem([user, headerToken]);
  } catch (err) {
    console.log(err);
  }
};
相关问题