【问题标题】:How to properly remove error from redux store如何从 redux 商店中正确删除错误
【发布时间】:2019-06-24 15:16:55
【问题描述】:

我有一个 react-redux 应用程序,我从 redux-saga 捕获每个错误响应,将其保存在 redux-store 中并在组件中呈现。主要问题是在组件更新或用户移动到另一个页面时将其删除的能力。我尝试使用组件生命周期方法 (componentWillUpdate),但它无法正常工作,因为我将其他存储部件连接到组件,并且当它们更新时,它会在用户看到之前清除错误。

我的问题是:有没有使用 redux 存储/查看/删除错误的正确方法?

我用这种方式处理错误

export function* errorHandler(err: any): SagaIterator {
   // put an error in the redux-store
}

// it's a wrapper for every saga
export const genericErrorHandler = (saga: (...args: any[]) => SagaIterator, ...args: any[]) =>
    function* handleApp(action: any): any {
        try {
            yield call(saga, action, args);
        } catch (err) {
            yield call(errorHandler, err);
        }
    };

【问题讨论】:

    标签: javascript reactjs redux react-redux redux-saga


    【解决方案1】:

    如果我们有更多关于您的应用设计以及您如何处理错误的详细信息,我可能会给出更具体的建议。但这里有一些可能会有所帮助的事情:

    • 按类型划分错误,每个都有单独的操作/减速器/存储位置。这将帮助您具体了解发生了何种错误以及何时/如何显示每个错误。
    • 触发操作以清除错误状态。这可确保您具体了解哪些错误不再存在,以及何时发生更改。如果可能,不要将其作为其他事情发生的副作用,具体说明时间和原因。
    • 如果错误状态特定于 UI 组件,并且应在该组件消失时从存储中删除,请考虑在该组件的 componentWillUnmount 方法中触发错误清除操作。仅当从 DOM 中移除组件时才会调用此方法。

    【讨论】:

      猜你喜欢
      • 2019-03-15
      • 1970-01-01
      • 1970-01-01
      • 2021-04-12
      • 2016-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-14
      相关资源
      最近更新 更多