СУХОЙ в настройке состояния нагрузки в редукторе - PullRequest
0 голосов
/ 31 мая 2018

Я собираюсь привести реальный случай, чтобы я мог объяснить это лучше.У меня есть веб-приложение, в котором пользователь может применить задание, поэтому у меня есть редуктор заданий, действия будут следующие: create_job, creation_job, fetching_job, fetched_job, fecthing_jobs, fetched_jobs, apply_job, appliled_job, faving_job, faved_job и т. Д.

наво-первых, я думал, что состояние загрузки настолько просто, что у меня есть initialState, например,

const initialState = {
   loading: true
}

. Затем в create_job просто установите значение false.Но это не будет работать для всех случаев, я не могу разделить одно состояние загрузки для всех.Итак, позже, я назвал их в пространстве и сделал это

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

Как мне сделать это более СУХИМ?Есть ли промежуточное программное обеспечение, с которым я могу справиться?

1 Ответ

0 голосов
/ 31 мая 2018

Мне как ученику нравится этот подход.Если я не пойму неправильно, вы хотите сохранить состояние глобальной загрузки.Поэтому создайте состояние выполнения или загрузки, а затем используйте такой редуктор, как этот:

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;
    }
};

Для каждого действия отправляйте приращение, когда выполненное задание отправляет приращение.Таким образом, до тех пор, пока каждая работа не будет завершена, у вас будет состояние прогресса или загрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...