如何在本地存储角度存储数组?

时间:2019-08-24 15:43:15

标签: angular local-storage web-storage

我试图将数据存储在数组中,以便稍后在其他组件中获取它,但是这会引起错误:

  

错误TypeError:无法读取未定义的属性“ push”

我使用了本地存储。

onSubmit() {
    let email = this.AuthForm.get("email").value;
    let password = this.AuthForm.get("password").value;
    let nomcomplet = "";
    let occupation = "";
    let niveau = 0;
    let newUser = new User(email, password, nomcomplet, occupation, niveau);
    console.log(newUser);
    let val: any = [];
    val = this.storage.get(this.key);
    val.push(newUser.email);
    this.storage.set(this.key, JSON.stringify(val));
}

我希望在本地存储中找到所有存储的值,但实际是错误的,只有最后一个值被存储在

屏幕截图

enter image description here

2 个答案:

答案 0 :(得分:0)

您已将数据存储为字符串,因此在检索数据时,应将其解析回为对象。

集合存储

this.storage.set(this.key, JSON.stringify(val));

从存储中检索

const storageVal = this.storage.get(this.key)
const val = JSON.parse(storageVal)

您可能还想添加一种方法来处理存储对象不存在(返回null值)的情况

const storageVal = this.storage.get(this.key)
const val = storageVal ? JSON.parse(storageVal) : []

答案 1 :(得分:0)

好吧,尝试一下

void *my_memmove(void *dest, const void *src, size_t len)
{
    const unsigned char *s = (const unsigned char *)src;
    unsigned char *d = (unsigned char *)dest;

    if(dest < src)
    {
        /* copy s to d forwards */
    }
    else
    {
        /* copy s to d backwards */
    }

    return dest;
}

请记住,src始终必须相同(y)

当您需要其他组件上的数据时,只需使用

dest

Some Screenshot LocalStorage Data