我想使用AsyncStorage
作为设置并获取值,但它在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);
}
}
答案 0 :(得分:0)
按照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);
}
}
答案 1 :(得分:0)
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;
}