Я работаю над своим хобби-проектом, созданным с использованием 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
};
}
...
Мой вопрос: нормально ли вызывать метод разрешения внутри моего редуктора? Или это плохо, и я должен решить свою проблему по-другому?
Спасибо за совет!