ngrx,如何从 api 获得起始状态?

标签 ngrx

我的 reducer 的起始状态为空数组:

folderReducer(state:Array<Folder> = [], action: Action)

我想填充起始状态,所以当我这样做时
store.subscribe(s => ..)

我得到的第一项来自数据库。我认为这样做的方法是使用 ngrx/effects,但我不确定如何。

最佳答案

您的商店始终具有您在 reducer 函数中定义的初始状态。初始状态的主要目的是确保应用程序能够启动并且不会遇到任何空指针异常。它还设置您的应用程序以开始进行第一个 api 调用等。 - 因此您可以将其视为技术初始状态。

如果您想在启动时用 api-data 填充您的商店,您可以在任何其他操作期间添加/修改数据的相同方式执行此操作 - 只是“初始加载数据”的操作不是由某些用户触发的- 交互但通过:

  • 当您的根组件加载时
  • 或作为构造函数中服务的一部分

  • 如果您想在 API 调用完成之前阻止特定组件显示任何内容,则必须调整显示组件以根据您的状态显示或隐藏数据(例如,通过在您的卫星 initialDataLoaded 中实现一个标志) .

    关于ngrx,如何从 api 获得起始状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42517257/

    相关文章:

    javascript - Angular 7、Ngrx、ExpressionChangedAfterItHasBeenCheckedError

    rxjs - 找不到 ngrx store.select 使用的 rxjs 选择运算符

    javascript - 尝试访问嵌套属性时 NgRx 选择错误

    angular - 使用商店的坏习惯?

    angular - NgRx 奇怪的行为

    redux - 在纯函数中使用 lodash 来映射输入值是否正确?

    angular - ngrx/商店选择不存在

    javascript - Angular 2、ngrx/store、RxJS 和树状数据

    angular - 如何将 NgRx 8 操作与 NgRx 7 reducer 一起使用

    angular - 从组件 ngrx 更改存储状态