我正在开发一个离子应用程序,因此我需要创建一个会话,因此当用户登录时,我已经存储了他的名字,然后我可以检查用户是否真正登录。为此,我创建了一个模型类和一个用户类。我的问题是,当我尝试控制台记录存储在ionic中的值时,它返回空值,这是一幅图像,解释了输出结果:
我不明白为什么它会像'0: 'n', 1: 'o', 2: 'm', 3: 'e'
那样记录日志。
我要做的是将用户名存储在会话中,并同时登录。
这就是我的做法:
import { Storage } from "@ionic/storage";
import { Injectable } from '@angular/core';
import { Usuario } from "./interface/usuario";
@Injectable()
export class Session {
constructor(public storage: Storage){}
create(usuario: Usuario) {
this.storage.set('usuario', usuario);
}
get(): Promise<any> {
return this.storage.get('usuario');
}
remove() {
this.storage.remove('usuario');
}
exist() {
this.get().then(res => {
console.log('resultado >>> ', res);
if(res) {
console.log('resultado IF');
return true;
} else {
console.log('resultado else');
return false;
}
});
}
}
我的用户/ Usuario类:
import { Model } from './../models/model';
export class Usuario extends Model{
nome: string;
email: string;
login: string;
senha: string;
}
模型类
import { Usuario } from './../interface/usuario';
export class Model{
constructor(Usuario){
Object.assign(this, Usuario);
}
}
我在哪里获取存储在Usuario对象中的内容,并在之后立即记录
ionViewDidLoad() {
this.carregarPerfil();
this.session.get()
.then(res => {
this.usuarioLogado = new Usuario(res);
console.log('usuário logado >>> ', this.usuarioLogado);
});
console.log(this.session.exist());
this.session.remove();
this.session.get()
.then(res => {
this.usuarioLogado = new Usuario(res);
console.log('USUARIO LOGADO >>> ', this.usuarioLogado);
});
console.log(this.session.exist());
}
编辑:这是当我在console.log内使用storage.get
创建时发生的情况https://imgur.com/a/W2rQhd8
create(usuario: Usuario) {
this.storage.set('usuario', usuario);
console.log('[TEST] VALUE BEING PASSED IS ', this.storage.get('usuario'));
}
答案 0 :(得分:1)
这是怎么回事:
this.usuario = new Usuario('nome');
object.assign()
来设置自己的参数。object.assign(this, 'nome')
,您将创建与字符串中的每个索引相对应的参数,并将值作为每个字符。很显然,您希望在此行上做一些不同的事情,例如将item
传递到构造函数中。但是,我认为object.assign业务正在遇到麻烦,因此您应该更加明确地反序列化结果。
export class Usuario {
nome: string;
email: string;
login: string;
senha: string;
constructor(src: any) {
if (src) {
this.nome = src['nome'] || undefined;
this.email = src['email'] || undefined;
this.login = src['login'] || undefined;
this.senha = src['senha'] || undefined;
}
}
}