我在应用程序中使用了一个数据表(使用“材料数据表”),我想构建一个简单的示例,其中不使用NGRX等库就保存了过滤器的状态。
我的问题很小,目前不使用整个库。我有什么方法可以做到这一点?
答案 0 :(得分:0)
超级简单的状态实用程序可能类似于以下内容。
this.state = {}
this.setState = (key,value) => this.state={...this.state,key:value}
您可以将其放在单例共享服务中。
答案 1 :(得分:0)
您可以使用rxjs进行简单的状态服务
import { BehaviorSubject } from 'rxjs';
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class StateService {
private _state$ = new BehaviorSubject({});
dispatchUserLoggedStatus(status) {
this._state$.next({
...this._state$.value,
isLogged: status
});
}
get state$() {
return this._state$.asObservable();
}
}
使用库文件的目的是当您需要其他功能时
答案 2 :(得分:0)
使用 rxjs-observable-store ,这是一个很好的解决方案,该商店的状态为BehaviorSubject,您可以在组件中订阅状态更新
this.store.state$.subscribe(state => {
// Logic to execute on state update
});
或使用
this.store.state;