NgRx 中的 reducer 增强剂等价物是啥?

Posted

技术标签:

【中文标题】NgRx 中的 reducer 增强剂等价物是啥?【英文标题】:What is the equivalent of a reducer enhancer in NgRx?NgRx 中的 reducer 增强剂等价物是什么? 【发布时间】:2019-07-20 05:51:13 【问题描述】:

我正在尝试使用 @ngrx/store 在我的应用程序中实现撤消/重做功能。

这里描述了基本概念(Redux):https://redux.js.org/recipes/implementing-undo-history

在配方中的某个时刻,reducer 函数被包装在 Redux 中称为 reducer enhancer

的东西中

reducer 增强器(或更高阶的 reducer)是一个函数,它接受一个 reducer,并返回一个能够处理新动作或保持更多状态的新 reducer,将控制权委托给内部 reducer不明白。

在 NgRx 中这个等价物是什么?我该如何构建商店...

store.pipe(select('counter')); 

...但是将其包装在“增强器”函数中?伪代码:

undoable(store.pipe(select('counter'));

有人向我指出了 meta-reducers (https://ngrx.io/guide/store/metareducers),但是上面的文档并没有为我解决问题。

【问题讨论】:

【参考方案1】:

Meta-reducers 是正确的答案。它具有与 redux 文档相同的 API,它接收一个 reducer 并返回一个 reducer。另一个示例可能是在用户退出时刷新状态的用例。

【讨论】:

是的,看来我毕竟走在了正确的轨道上,举手有点早。感谢您验证我的预感!

以上是关于NgRx 中的 reducer 增强剂等价物是啥?的主要内容,如果未能解决你的问题,请参考以下文章

在 NgRx 中强类型化存储的目的是啥?

NGRX - 如何通过reducer更新数组中对象中的字段?

在 @ngrx/store 4.0 中提供 root reducer

ngRx 官方示例分析 - 3. reducers

如何清除#ngrx 中的状态?

更新 ngrx/store 中的对象