【问题标题】:Angular Observable data lost on refresh, is there way to save data even after refreshAngular Observable 数据在刷新时丢失,有没有办法在刷新后保存数据
【发布时间】:2021-03-14 05:49:59
【问题描述】:

每当我刷新页面时,我都使用共享服务中的BehaviourSubject 作为响应,我得到空值,它会丢失最后一个发出事件数据

【问题讨论】:

  • 请分享一些代码!!!
  • 刷新时的 SPA 将从一开始就启动该过程。因此,存储在变量中的任何内容都将被重置。如果有些东西没有通过构造函数和 NgOnInit,那么它就不会保留它的值。除非当然存储在本地存储中

标签: angular observable refresh


【解决方案1】:

如果您想在刷新后保留 BehaviourSubject 的值,一种方法可能是使用 localStorage 并在组件加载时检索值:

export class AppComponent implements OnInit {
  private localKey="myVal";
  myVal = new BehaviorSubject(localStorage.getItem(this.localKey)??null);
  ngOnInit(){
    this.myVal.subscribe(newVal=>{
      localStorage.setItem(this.localKey,newVal);
    })
  }
}

stackBlitz

由于 localStorage 仅以字符串形式存储值,因此您只能存储文字(符号除外)或具有文字的普通对象/数组(您需要对其进行字符串化并以 JSON 格式解析)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 1970-01-01
    • 2016-10-15
    • 2022-10-21
    • 1970-01-01
    • 2018-08-02
    • 2016-12-25
    相关资源
    最近更新 更多