这是我的第一个问题所以请保持温和。
我在我的角度应用程序中使用ngrx / store,我想使用来自firebase的数据设置我的reducer函数的初始状态。但是,如果我的reducer.ts文件中没有构造函数,我不确定如何执行异步操作。
我知道ngrx效果以及如何使用它们,但我没有看到使用效果设置我的Reducer初始状态的方法。
希望有一个简单的例子,有人不介意发帖帮助像我这样的初出茅庐的开发者。
答案 0 :(得分:1)
初始状态的一点是,它是一开始就可用的状态,这意味着你必须立即设置它。
如果您异步获取状态,那么当您对firebase的调用返回数据时,您可以使用相同的方法来正常更新状态store.dispatch(...)
。
答案 1 :(得分:1)
当尝试从异步源提供初始状态时,您将面临的困难是ngrx reducer和商店初始化是同步的。
但是您仍然可以通过以下步骤来实现:
APP_INITIALIZER
的承诺来加载您的异步初始状态(这会延迟应用初始化,直到所有承诺都得到解决为止)ApplicationInitStatus.donePromise
时触发您自己的初始化动作这是太多的代码/太宽泛的答案,但是我在帖子“ use indexedDb with ngrx for fast application bootstrap”中写了更多细节,并附带了代码示例
您还可以遵循(有些古老)issue,有人提到如果ngrx支持持久状态,异步初始化会很好。
答案 2 :(得分:0)