javascript - 保持数据重新加载Angular 8
问题描述
我使用behaviourSubject
RXJS
,对于组件之间的交互,我得到了 3 个组件,其中
调查表
用户输入身份证号码以查看传票,获取传票并发送到查询响应
询问回复
从查询响应中获取召唤并以复选框的形式显示召唤,然后将选定的召唤(总金额)发送到支付组件
支付组件
从查询响应中获取总召唤并显示它。
但问题是当用户重新加载支付组件数据获取的页面Behaviour Subject
为空时,根据我的发现,我找到了使用的解决方案localStorage
,但它不适用于我,还发现了另一个状态管理库,例如ngrx
,我在项目中间,对我来说很难实施,有没有更好的做法来解决这个问题?
这是我尝试过的:
支付商店.service.ts
private transactions = new BehaviorSubject<any>({});
public transactions$ = this.transactions.asObservable();
setTransaction(data) {
this.transactions.next(data);
}
支付组件.ts
ngOnInit() {
this.paymentStore.transactions$.subscribe(
response => {
this.totalSummon = response;
}
);
}
这是我完整的stackblitz 演示。我可以使用一些建议和解决方案来解决这个问题。
解决方案
如果在本地存储数据不是解决方案,那么最简单的解决方案是将其存储在数据库中。最好是不需要您自己设置后端的。
Firebase 将为您提供快速实施,因为它只需要初始设置并编写一些安全规则,以便正确的用户可以访问数据。
如果您之前从未使用过 Firebase,我建议您看看@angular/fire
哪个是 Angular 的实现。你可以在这里找到它的文档:
https://github.com/angular/angularfire2
有一些示例文档可以帮助您入门。
推荐阅读
- javascript - 试图在jQuery中访问函数外部的数字变量
- node.js - 为什么我的响应数据没有被解码为我的类型?
- java - 如何更新 ConcurrentHashMap 并返回之前的值
- julia - 如何将信息收集到 txt 文件并打印到终端?
- reactjs - 仅在选中复选框时复制表单输入 - React Hook Form
- c++ - dpc++ 错误 提交的命令组没有内核或显式内存操作。-59(CL_INVALID_OPERATION)
- node.js - Node.js - 将包含输入字段和数据的各种 PDF 合并到单个 PDF 中会在合并的 PDF 中返回空白输入字段
- vue.js - 调整 vue-chartjs 高度,同时保持响应
- java - 如何根据需要在 Object 中创建字段或进行字段验证?
- react-native - this.state 渲染时返回空数组