Плохо ли передавать обещание редуктору и разрешать его там? - PullRequest
1 голос
/ 08 апреля 2019

Я работаю над своим хобби-проектом, созданным с использованием React, Redux и Redux-thunk.

У меня сейчас 3 редуктора:

  • атакующие
  • 1008 * защитники *
  • комбинации

Внутри моего создателя действий я должен отправить несколько действий в определенном порядке. И мне нужно передать какие-то данные от второго актона к третьему действию. Итак, я сделал это:

Actions.js

export const deleteAttacker = id => {
    return (dispatch) => {
        dispatch({
            type: DELETE_ATTACKER,
            payload: {
                id
            }
        });

        updateDefenders(id, dispatch)
            .then(data => dispatch({
                type: COMBINATIONS_DELETE_ATTACKER,
                payload: {
                    id,
                    data,
                }
            }));
    };
};

export const updateDefenders = (id, dispatch) => {
    return new Promise((resolve) => {
        dispatch({
            type: UPDATE_DEFENDERS,
            payload: {
                id,
                resolve
            }
        });
    });
}

Reducers/Defenders.js

...
case UPDATE_DEFENDERS: {
            const data = [];

            ...
            // push new elements into the 'data' array
            // update the newState object

            action.payload.resolve({ data });
            // Return the data array, so I can pass that array to the third action.
            // Is it a bad thing to do...? 

            return {
                ...newState
            };
}
...

Мой вопрос: нормально ли вызывать метод разрешения внутри моего редуктора? Или это плохо, и я должен решить свою проблему по-другому?

Спасибо за совет!

...