Redux обновляет состояние в другом редукторе - PullRequest
0 голосов
/ 06 июня 2018

Настройка

В моем приложении есть ученики, которым назначено домашнее задание.Каждый раз, когда создается ученик Я перебираю текущую домашнюю работу и обновляю массив домашних заданий для каждого ученика.

Моя проблема, когда я создаю домашнюю работу .Мало того, что домашняя работа должна быть создана, но я должен затем назначить ее определенным студентам, как только она будет создана.

Я разделил свое приложение на три редуктора;классы, студенты и домашнее задание.

Вопрос

Как я могу обновить состояние моих учеников с помощью редуктора Homework?Мне нужно подождать, пока домашнее задание не будет создано, а затем назначить массив домашних заданий каждому ученику.Возможно, я могу отправить одно действие, а затем другое?

case actionTypes.CREATEHOMEWORKS:
    // Get new homework description
    const newHomework = action.newHomework
    // Get the currently active class
    const activeClass = action.activeClass.key;
    // Get users current browser data
    const dateCreated = getCurrentDate();
    // Generare a new UID
    const key = guid();
    // Create a new homework object
    const homework = { key: key, class: activeClass, dateCreated: dateCreated, description: newHomework };
    // Get the current homework array
    const homeworks = JSON.parse(JSON.stringify(state.homeworks));
    // Combine current homework with new homework object.
    homeworks.push(homework);

    // I now need to update students to have this homework but they are handled
    // in another state

enter image description here

1 Ответ

0 голосов
/ 06 июня 2018

Ваш редуктор должен быть чистой функцией, то есть при одинаковом входе он всегда будет генерировать один и тот же выход.Вы генерируете случайный GUID в своем редукторе, поэтому один и тот же вход никогда не даст одинаковый выход.Если бы вы перенесли генерацию GUID в свое действие, вы могли бы передать его в полезную нагрузку вашего действия CREATEHOMEWORK, а затем также отправить его в действии ASSIGNHOMEWORK, которое обрабатывает ваш students редуктор.

...