问题描述
这是我的代码:
AsyncStorage.getItem('idtoken').then(value => console.log(value));
这是结果:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6NTEsImlhdCI6MTYwMzc5ODUyM30.d8veMJVBhYA9P_JAvfpOOMbuZxvMATyrHpzQBaXPHyg
但是当我尝试时:
const getTaken = () => AsyncStorage.getItem('idtoken').then(value => {
var tokenuser = value;
return tokenuser;
});
token = getTaken();
console.log(token);
结果是:{"_U": 0,"_V": 0,"_W": null,"_X": null}
如何获取存储在idtoken中的值,请帮助我
解决方法
您可以使用以下功能存储和获取数据:
const storeData = async (key,value) => {
try {
await AsyncStorage.setItem(key,value);
} catch (error) {
console.log(error);
}
};
const getData = async key => {
try {
const data = await AsyncStorage.getItem(key);
if (data !== null) {
console.log(data);
return data;
}
} catch (error) {
console.log(error);
}
};
然后您可以调用函数并获取如下值:
存储值:
storeData("Keyname",the value);
获取值并将其设置为状态,例如:
await getData"Keyname")
.then((data) => data)
.then((value) => this.setState({ isFavorite: value }))
.catch((err) => console.log("AsyncStorageErr: " + err));
,
尝试这种方式
const getTaken = async () => {
return await AsyncStorage.getItem("idtoken")
}
const token = getTaken();
console.log(token);
,
您正在将getTaken
定义为可解决承诺的函数。为了正确调用它,您需要通过执行以下操作来说它是一个异步函数:
const getTaken = **async** () => AsyncStorage.getItem('idtoken').then(value => {
var tokenuser = value;
return tokenuser;
});
然后,您无法通过在调用前添加等待来获得其结果。
token = **await** getTaken();`enter code here`