我有一个不知道如何解决的问题...
我在AsyncStorage中保存了一个api令牌,当我想要获取其余信息时,我需要这个api令牌,但是我不知道该怎么做。
我有带有AsyncStorage函数的Functions.js文件。
async retrieveItem(key) {
try {
const retrievedItem = await AsyncStorage.getItem(key);
const item = JSON.parse(retrievedItem);
return item;
} catch (error) {
console.warn(error.message);
}
},
getApiToken: function(){
try {
return Functions.retrieveItem('api_token');
} catch (error) {
console.warn(error.message);
}
},
具有提取功能的文件。 (Api.js)
我使用异步功能进行了测试,但未找到...
async get(url) {
try {
var api = await Functions.getApiToken();
if (!api)
api = "";
let opt = {
method: 'get',
headers: new Headers({
'Content-Type': 'application/x-www-form-urlencoded'
}),
};
return fetch(baseUrl + url + api, opt);
} catch (error){
console.warn(error);
}
},
当我执行抓取功能时,它对我来说毫无问题
还有屏幕文件Home.js
componentDidMount() {
Api.get('home').then( response => {
this.setState({
profiles: response.profiles,
});
});
}
答案 0 :(得分:2)
请稍微修改您的Functions.js代码-
async retrieveItem(key) {
try {
const retrievedItem = await AsyncStorage.getItem(key);
const item = JSON.parse(retrievedItem);
return item;
} catch (error) {
console.warn(error.message);
}
},
async getApiToken{
try {
let token = await retrieveItem('api_token');
return token;
} catch (error) {
console.warn(error.message);
}
}
希望这对您有帮助!