首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在angular/ngrx应用程序中将保存状态的逻辑放到本地存储的位置

在angular/ngrx应用程序中将保存状态的逻辑放到本地存储的位置
EN

Stack Overflow用户
提问于 2018-02-08 18:30:16
回答 1查看 1.7K关注 0票数 6

我有一个angular应用程序,它使用@ngrx进行状态管理。在这个应用程序中,我有一个逻辑,它订阅状态的某些视图,并在它们发生变化时将它们保存到本地存储中。代码按预期工作,但我目前将其放在我的应用程序组件中,这似乎是错误的位置。有人能建议把这个逻辑放在什么地方最好吗?

代码语言:javascript
复制
import { Component } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/combineLatest';
import { Store } from '@ngrx/store';

import * as fromRoot from './state-management/reducers';

@Component({
    selector: 'app-root',
    templateUrl: './app.component.html',
})
export class AppComponent {
    constructor(
        private store: Store<fromRoot.State>,
    ){
        // Persist the user, with things to local storage
        Observable.combineLatest(
            store.select(fromRoot.getAuthUser),
            store.select(fromRoot.getThings),
            (user, things) => {
                return {...user, things: things};
            }
        ).subscribe(user => {
            let oldUser = JSON.parse(localStorage.getItem('currentUser'));
            localStorage.setItem('currentUser', JSON.stringify({...oldUser, user: user}));
        });
    }
}
EN

回答 1

Stack Overflow用户

发布于 2020-03-31 04:08:22

我建议您简单地使用现有的包:https://www.npmjs.com/package/ngrx-store-localstorage

他的作者肯定已经找到了合适的地方。如果您仍然希望使用自己的实现,那么我建议您查看他的源代码,以了解他用于更新的触发器:https://github.com/btroncone/ngrx-store-localstorage/blob/master/src/index.ts#L289

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48683279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档