Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在redux减速器的设定加载状态下干燥_Javascript_Reactjs_Redux - Fatal编程技术网

Javascript 在redux减速器的设定加载状态下干燥

Javascript 在redux减速器的设定加载状态下干燥,javascript,reactjs,redux,Javascript,Reactjs,Redux,我要带一个真实的案例,这样我才能更好地解释它。我有一个用户可以申请工作的网络应用程序,所以我有一个工作缩减器,操作将是创建工作、创建工作、获取工作、获取工作、复制工作、获取工作、应用工作、应用工作、创建工作、伪造工作等 起初,我认为加载状态很容易,我有这样的初始状态 const initialState = { loading: true } 然后在创建的作业中,将其设置为false。但这并不适用于所有情况,我不能为所有人共享一个加载状态。所以,后来,我给它们命名并做了这个 const

我要带一个真实的案例,这样我才能更好地解释它。我有一个用户可以申请工作的网络应用程序,所以我有一个工作缩减器,操作将是创建工作、创建工作、获取工作、获取工作、复制工作、获取工作、应用工作、应用工作、创建工作、伪造工作等

起初,我认为加载状态很容易,我有这样的初始状态

const initialState = {
   loading: true
}
然后在创建的作业中,将其设置为false。但这并不适用于所有情况,我不能为所有人共享一个加载状态。所以,后来,我给它们命名并做了这个

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

我如何使这个更干燥?有没有一个中间件可以处理这个问题?

作为一个学习者,我喜欢这种方法。如果我没有误解,您希望保持全局加载状态。因此,请创建一个进度或加载状态,然后使用以下减速器:

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;
    }
};
对于每个操作,分派增量,当作业完成时分派减量。因此,在每个作业完成之前,您将处于正在进行或正在加载的状态