Создатели условных действий в Redux

Лучше всего писать условия в создателях действий? если нет, то какая альтернатива для этого?

мой сценарий таков, что у меня есть загрузчик файлов, и в зависимости от выбора я либо нажимаю данные на reducerA или reducerB.

return function (dispatch, getState) {
        const { selectedStage } = getState();
        if (selectedStage.stage === Constants.STAGE_CARRIER) {
            **dispatch(uploadCarrier(payload));**
        } else {
            **dispatch(uploadWeb(payload));**
        }

    };

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

Jevgeni 18.06.2018 13:55

Вы должны отправлять различные действия внутри вашего компонента (smart). Создатель вашего экшена не должен знать о каких-либо различиях, это должен быть простой объект. Все условия вы должны написать внутри своего компонента. Это хорошо, потому что другие ваши компоненты могут использовать те же действия, и вы не хотите помещать туда код для определенного компонента. Например: addFile: (file, type) => { if (type === 'A') { dispatchProps.AddA(file) } else { dispatchProps.addB(file) } }

Errorpro 19.06.2018 10:11
10 вопросов на собеседовании по React js
10 вопросов на собеседовании по React js
Вопрос: Что такое React JS? Каковы преимущества использования React?
0
2
642
0

Другие вопросы по теме