You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用LocalStorage后页面刷新仍丢失Eintraege数组数据求助

问题修复方案

1. 修正LocalStorage服务的saveData方法

当前saveData方法硬编码了key值,未使用传入的参数(虽当前调用场景未直接引发问题,但属于代码隐患):

public saveData(key: string, value: string) {
    localStorage.setItem(key, value); // 将硬编码的'token'替换为传入的key参数
}

2. 完善组件的getEintraege方法

这是刷新后数据丢失的核心原因:你仅调用了getData获取存储的字符串,但未将其解析为数组并赋值给组件的eintraege变量,导致页面刷新后数组仍为初始空状态:

getEintraege(): void {
    const savedData = this.eintragService.getData('token');
    if (savedData) {
        this.eintraege = JSON.parse(savedData) as Eintrag[]; // 解析JSON字符串并赋值给组件数组
    }
}

3. 补全add方法的语法规范

确保方法最后一行添加分号(TypeScript允许省略,但规范写法需补充):

add(beschreibung: string, faelligkeitsdatum: string) {
    var eintrag: Eintrag = {
        beschreibung: '',
        faelligkeitsdatum: '',
        erledigt: false,
    };

    eintrag.beschreibung = beschreibung;
    eintrag.faelligkeitsdatum = faelligkeitsdatum;
    eintrag.erledigt = false;

    this.eintraege.unshift(eintrag);

    this.eintragService.saveData('token', JSON.stringify(this.eintraege)); // 补充分号
}

问题根源总结

  • 存储环节:服务方法未正确使用传入的key参数,存在代码维护隐患
  • 读取环节:未将LocalStorage中存储的JSON字符串解析为数组并赋值给组件变量,导致页面刷新后数据未加载

内容的提问来源于stack exchange,提问作者user19434217

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 10:35:35