[英]Where in angular/ngrx application to put logic for saving state to local storage
[英]Adding service dependent logic to NGRX actions in an Angular application
我有一个这样的动作文件:
export enum ActionTypes {
FailureAction = 'Failure action',
}
export class FailureAction implements Action {
readonly type = ActionTypes.FailureAction;
constructor(public payload: any) { }
}
export type ActionTypes = FailureAction;
我想在FailureAction类中添加一些逻辑,以便每当调用此操作时,我们都会调用一个服务来决定如何显示错误(唯一的参数是代码)。 我创建了一个在构造函数中具有代码参数的类,并使用在应用程序模块中定义的依赖项注入器( 手动注入服务)来获取所需的服务。 然后我用新创建的类扩展了 FailureAction 并在构造函数中使用代码参数调用 super() 。 当我调度FailureAction
,控制台会被错误轰炸并使整个应用程序崩溃。
这甚至可以按照我尝试的方式进行吗? 任何替代建议?
Action 类中不应包含特殊逻辑。 该操作只是通过框架传递的数据有效负载。
有两种方法(据我所知)来处理动作:
如果您需要基于某个动作执行某些操作(例如,从服务器或本地存储中查找数据),您可以使用 Effect。 你可能有一个看起来像这样的流程:
发生错误 -> 调度新的错误操作(错误代码)
错误动作 -> 错误处理效果(查找错误代码) -> 新的错误信息加载动作
错误消息加载操作 -> 错误视图减速器 -> 带有错误消息的新视图状态
效果是可注入的服务,可以引用和使用其他服务。
查看@ngrx/effects
的文档: https : @ngrx/effects
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.