我想使用AsyncStorage
,但它返回[object object]
:
Phone.js
组件:
commonHelper.setData("commonConstants.KEY_CODE",'code');
this.goTo('Activation');
Activation.js
组件:
const code = commonHelper.getData("commonConstants.KEY_CODE")
this.setState({searchString:code.toString()})
commonHelper.js
:
function getData(key) {
try {
const value = AsyncStorage.getItem(key).then(val => {
return JSON.parse(val)
});
return value
} catch (err) {
throw err
}
}
function setData(key,value) {
try {
AsyncStorage.setItem(key, JSON.stringify(value));
} catch (error) {
console.log("Error saving data" + error);
}
}
我的问题在哪里?
答案 0 :(得分:2)
AsyncStorage
正在返回承诺。您的getData
兑现了承诺。
要读取数据,您需要使用.then
commonHelper.getData("commonConstants.KEY_CODE")
.then(code => {
this.setState({searchString:code}) // or code.toString().. depends on what you stored
});`
另外,由于您要在return value
中返回承诺,因此getData函数中的.then
是必需的