react-native - 使用异步存储将对象存储在 react-native 的数组中
问题描述
我已经使用 Guid id 生成了随机 Qr 代码,并且我将最后生成的 Qr 代码保存到 async-storage 但是我如何将每个生成的随机 Guid id 存储到 async-storage 中。这是生成随机ID的代码。
let base64Logo = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAA..";
function uuidv4() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
}
AsyncStorage.setItem("id", uuidv4());
console.log(uuidv4());
谢谢!
解决方案
在保存时使用 JSON.stringify 将数组转换为字符串,在读取时使用 JSON.parse 将数组转换回数组
let base64Logo = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAA..";
function uuidv4() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
}
// save item in array
try {
const myArrayString = await AsyncStorage.getItem('ids');
const myArray = myArrayString !== null?JSON.parse(myArray):[];
myArray.push(uuidv4())
await AsyncStorage.setItem('ids', JSON.stringify(myArray));
} catch (error) {
// Error saving data
}
// when you want to retrieve array
try {
const myArray = await AsyncStorage.getItem('ids');
if (myArray !== null) {
// We have data!!
console.log(JSON.parse(myArray));
}
} catch (error) {
// Error retrieving data
}
推荐阅读
- filesystems - 在嵌入式系统中支持文件系统的构建块是什么?
- python - 如何从函数返回彩色文本?
- django - 为什么我们在 Django 中需要 get_absolute_url() ?
- php - 是否有与 Python 的 __name__ == __main__ 等效的 PHP?
- android - 在 Gradle 中包含 Android 密钥库属性文件,仅在发布版本中
- typescript - 打字稿将对象从一个数组移动到另一个数组
- reactjs - 为什么开发人员应该在 React 中为子元素创建键?
- javascript - 如何以通用方式提取Javascript中的某些字符串字符?
- visual-studio-code - 在 VSCode 中更改 Mongoose Schema 中键的颜色
- php - libreoffice 在 /usr/bin/libreoffice 中不可执行