Лучше всего писать условия в создателях действий? если нет, то какая альтернатива для этого?
мой сценарий таков, что у меня есть загрузчик файлов, и в зависимости от выбора я либо нажимаю данные на reducerA или reducerB.
return function (dispatch, getState) {
const { selectedStage } = getState();
if (selectedStage.stage === Constants.STAGE_CARRIER) {
**dispatch(uploadCarrier(payload));**
} else {
**dispatch(uploadWeb(payload));**
}
};
Вы должны отправлять различные действия внутри вашего компонента (smart). Создатель вашего экшена не должен знать о каких-либо различиях, это должен быть простой объект. Все условия вы должны написать внутри своего компонента. Это хорошо, потому что другие ваши компоненты могут использовать те же действия, и вы не хотите помещать туда код для определенного компонента. Например: addFile: (file, type) => { if (type === 'A') { dispatchProps.AddA(file) } else { dispatchProps.addB(file) } }

Это зависит от того, где вы хотите / должны принимать решение. Я вижу три варианта. Все трое чувствуют себя законными. 1. в создателе действий (например, в вашем примере) 2. при подключении проверьте состояние и выполните соответствующее действие 3. внутри компонента, например
this.props.stage === Constants.STAGE_CARRIER ? this.props.uploadCarrier() : this.props.uploadWeb()