【问题标题】:DRY in setting loading state in redux reducerDRY 在 redux reducer 中设置加载状态
【发布时间】:2018-05-31 01:37:44
【问题描述】:

我将带来一个真实的案例,以便更好地解释它。我有一个用户可以申请工作的 webapp,所以我有一个工作缩减器,操作将是 create_job、created_job、fetching_job、fetched_job、fecthing_jobs、fetched_jobs、applying_job、appliled_job、faving_job、faved_job 等。

起初,我认为加载状态是如此简单,我有这样的 initialState

const initialState = {
   loading: true
}

然后在 created_job 中将其设置为 false。但这不适用于所有情况,我不能为所有人共享一个加载状态。所以,后来,我给它们命名空间并这样做了

const initialState = {    creating_job_loading: true,   
fetching_job_loading: true,    fecthing_jobs: true    //etc }

如何让这个更干燥?有没有我可以处理的中间件?

【问题讨论】:

    标签: javascript reactjs redux


    【解决方案1】:

    作为一名学习者,我喜欢这种方法。如果我没有误会,你想保持全局加载状态。所以创建一个进度或加载状态,然后像这样使用减速器:

    const progressReducer = ( state = 0, action ) => {
        switch ( action.type ) {
        case INCREMENT_PROGRESS:
            return state + 1;
        case DECREMENT_PROGRESS:
            return Math.max( state - 1, 0 );
        default:
            return state;
        }
    };
    

    对于每个动作,当任务完成时分派一个减量,分派一个增量。因此,在每项工作完成之前,您将处于进度或加载状态。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-23
      • 2019-07-28
      • 2021-01-27
      • 2022-10-02
      • 2018-08-04
      • 1970-01-01
      • 2021-07-10
      • 1970-01-01
      相关资源
      最近更新 更多