Skip to main content

async-storage

https://react-native-async-storage.github.io/async-storage/docs/install/

npx expo install @react-native-async-storage/async-storage

存储数据

/**
* 存储数据
* @returns {Promise.<void>}
*/
async saveData(k, v) {
//用法一
AsyncStorage.setItem(k, v, error => {
error && console.log(error.toString());
});

//用法二
AsyncStorage.setItem(k, v)
.catch(error => {
error && console.log(error.toString());
});

//用法三
try {
await AsyncStorage.setItem(k, v);
} catch (error) {
error && console.log(error.toString());
}
}

读取数据


/**
* 获取数据
*/
async getData() {
//用法一
AsyncStorage.getItem(k, (error, value) => {
this.setState({
showText: value
});
console.log(value);
error && console.log(error.toString());
});
//用法二
AsyncStorage.getItem(k)
.then(value => {
this.setState({
showText: value
});
console.log(value);

})
.catch(error => {
error && console.log(error.toString());
});
//用法三
try {
const value = await AsyncStorage.getItem(k);
this.setState({
showText: value
});
console.log(value);
} catch (error) {
error && console.log(error.toString());
}
}

删除数据

/**
* 删除数据
* @returns {Promise.<void>}
*/
async removeData(k) {
//用法一
AsyncStorage.removeItem(k,error => {
error && console.log(error.toString());
});

//用法二
AsyncStorage.removeItem(k)
.catch(error => {
error && console.log(error.toString());
});

//用法三
try {
await AsyncStorage.removeItem(k);
} catch (error) {
error && console.log(error.toString());
}
}

AsyncStorage 有那些常用的 API

setItem()
方法原型:static setItem(key: string, value: string, [callback]: ?(error: ?Error) => void)

该方法提供以 key,value 键值对的方式存储数据,方法的第三个参数是错误 callback ,可以通过判断 error 是否为空来判断是否保存成功。 方法返回一个 Promise 对象。

getItem()
方法原型:static getItem(key: string, [callback]: ?(error: ?Error, result: ?string) => void)

该方法用户获取存储的数据,方法的第二个参数是 callback(error,result) ,完成读取数据后会回调该方。方法返回一个 Promise 对象。

removeItem()
方法原型:static removeItem(key: string, [callback]: ?(error: ?Error) => void)

删除一个字段。可以通过判断 error 是否为空来判断是否保存成功。方法返回一个 Promise 对象。