【问题标题】:saving and removing weekly schedule in async storage react native在异步存储中保存和删除每周计划反应原生
【发布时间】:2019-11-05 01:36:18
【问题描述】:
我的项目中有一个场景,我必须保存每周开始和结束时间的时间表
我想要什么
用户可以输入带有开始和结束的日程表
时间,可以删除。
我还确认如果用户已经有一个日程安排,他不能在同一天在删除第一个日程安排之前保存另一个日程安排。
我试过的
AsyncStorage multiset 和 multiget
但我还没有达到我的目标。
请让我知道如何使用对象或关联数组从 AsyncStorage 保存和取回计划。
我们将不胜感激
【问题讨论】:
标签:
javascript
arrays
react-native
object
asyncstorage
【解决方案1】:
将数据保存为对象,并使用 JSON.stringify 将其异步存储为字符串
state = {
schedule: [{ day: 'Monday', start: '9:00', end: '17:00'}]
}
将项目保存为字符串
【解决方案2】:
您只能将字符串存储在 AsyncStorage 中。您将需要对您的数组/对象进行字符串化,并在检索时重新解析。
异步存储存储键值对。
AsyncStorage.setItem(key, JSON.stringify(item));
AsyncStorage.getItem(key);
async setSchedule(schedule){
try{
let value = await AsyncStorage.getItem("schedule");
if(value==null)
{
await AsyncStorage.setItem("schedule",JSON.stringify(schedule));
console.log("schedule Not there);
}
else{
console.log("schedule aldready set");
}
}
catch(er){
}
}
async removeSchedule()
{
await AsyncStorage.removeItem("schedule")
}
async getSchedule()
{
let value = await AsyncStorage.getItem("schedule")
return JSON.parse(value)
}
【解决方案3】:
将数据保存为对象,并使用JSON.stringify将其作为字符串保存在异步存储中
state = {
schedule: [{ day: 'Monday', start: '9:00', end: '17:00'}]
}
将项目保存为字符串
AsyncStorage.setItem('schedule', JSON.stringify(this.state.schedule));
检索项目。
const items = await AsyncStorage.getItem('schedule');
const schedule = JSON.parse(items);
DEMO