我想使用AsyncStorage作为set并获取值,但它在componentDidMount内部不起作用
componentDidMount(){
commonHelper.setData('mmmm','12345');
commonHelper.getData('mmmm')
.then(data => {
console.log(data)
});
}我的commonHelper.js
function getData(key) {
try {
const value = AsyncStorage.getItem(key).then(val => {
return val
});
return value
} catch (err) {
throw err
}
}
function setData(key,value) {
try {
AsyncStorage.setItem(key, value);
} catch (error) {
console.log("Error saving data" + error);
}
}发布于 2018-08-07 13:17:26
正如Dan建议的那样,异步地使用它:
import { setData } from './commonHelper';
...
componentDidMount(){
commonHelper.setData('mmmm','12345')
.then(() => { /* do something. The data is stored now. */});
}
//commonHelper.js
export async function setData(key, value) {
try {
await AsyncStorage.setItem(key, value);
} catch (error) {
console.log("Error saving data" + error);
}
}发布于 2018-08-07 13:47:51
import { setData } from '../commonHelper';
componentDidMount() {
this.updateStorage();
}
updateStorage = async () => {
const item = await setData('mmmm','12345');
console.log({
item
});
}CommonHelper函数:
export const setData = async (key, value) => {
const item = await AsyncStorage.setItem(key, value);
return item;
}https://stackoverflow.com/questions/51727476
复制相似问题