gpt4 book ai didi

javascript - NGRX 处理获取/创建/删除错误

转载 作者:行者123 更新时间:2023-12-03 04:42:05 24 4
gpt4 key购买 nike

我有一个reducer,当前存储产品的状态。我有当前的状态结构:

{
draft: {},
loading: false,
error: false
}

我的问题是,当用户创建/删除产品时,如何支持处理错误?我不想使用相同的 loading/error 属性来获取/创建/删除 - 它们可能需要同时发生。我最好创建单独的 reducer ,例如 createProductReducer/deleteProductReducer/getProductReducer,或者可能将错误/加载到自己的 errorReducer/'loadingReducer`?

最佳答案

作为基本经验法则:reduce 不包含任何逻辑,并且包含(在大多数情况下)语义相关的数据。

简而言之:我不建议您将 productReducer 拆分为多个 reducer 。

其次,我建议您重新考虑数据流,以及您是否确实需要将一次性事件(您的情况下的错误)作为应用程序状态的一部分。在大多数情况下,这是没有必要的。

这是我通常处理这个问题的方式:

错误:任何外部操作(REST、数据库调用等...)都是通过调用服务方法的效果来完成的。如果发生错误 - 效果返回一个操作(例如 ERROR_ACTION),该操作仅由某些根组件处理以显示错误(通过 actions$.ofType(ERROR_ACTION)...) - 没有 reducer 或效果监听此操作(除非涉及一些日志服务)。

加载:有一个 reducer (uiReducer),它有一个加载计数器(加载事件开始:+1;加载事件完成/错误:-1 )并且只要计数> 0,根组件(加载指示器)就可见。

关于javascript - NGRX 处理获取/创建/删除错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43043978/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com