从 Ionic Storage 获取数据的问题
Problems to get the data from Ionic Storage
我的 Ionic-Storage 有问题。
我想将一个布尔值保存到存储中。该动作由离子切换触发。如果切换打开= true,否则为false。所以我创建了一个服务,可以保存和获取数据。
存储-Service.ts
const ITEM_KEY = 'modal-myworkplace';
[...]
async setItem(value){
const res = await this.storage.set(ITEM_KEY,value)
console.log(res)
}
async getItem() {
await this.storage.get(ITEM_KEY).then((name) => {
console.log('The Keyvalue is: '+name)
})
}
问题来了...
我想在一个组件中获取这些数据。像这样:
Component.ts
let saveWorkplace: boolean;
[...]
async setData(){
await this.storage.getItem().then((name) => {
console.log("Key: "+ name)
})
}
我想从存储中获取值(true 或 false),然后应该在 saveWorkplace 中定义它。
如果我 console.log Component.ts 中的这个属性,我会得到一个未定义的对象。但是如果我 console.log Storage.ts 中的 属性 我得到一个 Value(See Image)
我不知道如何才能只得到值 true 或 false。
希望有人能帮助我
您的 getItem()
没有返回值。将其更改为:
async getItem() {
return await this.storage.get(ITEM_KEY);
}
您需要确保跟踪您return(承诺或价值)并相应地更新您的代码:
服务:
setItem(value):Promise<any> {
this.storage.set(ITEM_KEY,value) // you can use .then here to check saved value.
}
getItem():Promise<any> {
return this.storage.get(ITEM_KEY);
}
在您的组件中,因为您return承诺您可以使用异步:
async getData() {
return this.saveWorkplace = await this.storage.getItem()
};
现在,如果您觉得需要利用异步方法并在页面初始化时 (ngOnInit) 读取这些值,您可以这样做:
ngOnInit() {
this.getData().then( saved => {
console.log(saved)
// the rest of init code that depends on the value;
})
};
我的 Ionic-Storage 有问题。 我想将一个布尔值保存到存储中。该动作由离子切换触发。如果切换打开= true,否则为false。所以我创建了一个服务,可以保存和获取数据。
存储-Service.ts
const ITEM_KEY = 'modal-myworkplace';
[...]
async setItem(value){
const res = await this.storage.set(ITEM_KEY,value)
console.log(res)
}
async getItem() {
await this.storage.get(ITEM_KEY).then((name) => {
console.log('The Keyvalue is: '+name)
})
}
问题来了... 我想在一个组件中获取这些数据。像这样: Component.ts
let saveWorkplace: boolean;
[...]
async setData(){
await this.storage.getItem().then((name) => {
console.log("Key: "+ name)
})
}
我想从存储中获取值(true 或 false),然后应该在 saveWorkplace 中定义它。
如果我 console.log Component.ts 中的这个属性,我会得到一个未定义的对象。但是如果我 console.log Storage.ts 中的 属性 我得到一个 Value(See Image)
我不知道如何才能只得到值 true 或 false。
希望有人能帮助我
您的 getItem()
没有返回值。将其更改为:
async getItem() {
return await this.storage.get(ITEM_KEY);
}
您需要确保跟踪您return(承诺或价值)并相应地更新您的代码:
服务:
setItem(value):Promise<any> {
this.storage.set(ITEM_KEY,value) // you can use .then here to check saved value.
}
getItem():Promise<any> {
return this.storage.get(ITEM_KEY);
}
在您的组件中,因为您return承诺您可以使用异步:
async getData() {
return this.saveWorkplace = await this.storage.getItem()
};
现在,如果您觉得需要利用异步方法并在页面初始化时 (ngOnInit) 读取这些值,您可以这样做:
ngOnInit() {
this.getData().then( saved => {
console.log(saved)
// the rest of init code that depends on the value;
})
};