Куда должна пойти бизнес-логика (создатели действий или редукторы), чтобы реагировать с использованием избыточности? - PullRequest
0 голосов
/ 01 декабря 2018

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

Поэтому я пытаюсь создать простой компонент корзины для приложения электронной коммерции ....

Ниже приведен код для редукторов.и файлы действий:

actions.js

export const incrementQuantitySuccess = (basketProducts) =>{
    return {
        type: actionTypes.INCREMENT_QUANTITY_SUCCESS,
        basketProducts:basketProducts
    }
}

export const incrementQuantity = (line) => {
    return (dispatch,getState) => {  

       /*LOGIC for increment quantity*/
        const basketProducts = getState().basket.productsInBasket;
        const updatedBasketProducts = basketProducts.map((product) =>{        
            if (product.id === line.id){
                product.quantity += 1;
                product.total = product.quantity * product.price;
            }

            return product;
        });
        /***************/  

        dispatch(incrementQuantitySuccess(updatedBasketProducts));
  }
}

reducer.js

const incrementQuantitySuccess = ( state, action ) => {
    return updateObject(state,{
        productsInBasket:action.basketProducts,
        loading:false
    });
}

const reducer = (state= initialState,action) => {
    switch(action.type){
        case actionTypes.GET_BASKET: return getBasket(state,action);
        case actionTypes.INCREMENT_QUANTITY_SUCCESS: return incrementQuantitySuccess(state,action);
        default:return state;
    }
}

export default reducer;

Сейчас у меня естьПоместите логику количества приращений в мой файл action.js.

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

Мой вопрос: куда должна идти логика для приращения?Я просмотрел несколько статей на сайте redux.js.org о том, где должна быть бизнес-логика, но я до сих пор не уверен в этом.

Также это конкретный вариант использования. Я не уверен, что мне нужно промежуточное программное обеспечение, такое как Redux-logic.

Я новичок, чтобы реагировать.Пожалуйста, руководство по этому поводу.

Заранее спасибо

1 Ответ

0 голосов
/ 01 декабря 2018

Одна из практик гласит, что вы должны сохранять свои редукторы и действия чистыми , и реальный побочный эффект должен происходить внутри вашего промежуточного программного обеспечения.При таком подходе вы будете сохранять действия и редукторы красивыми и чистыми, и вы сможете полностью сосредоточиться на промежуточном программном обеспечении, потому что оно станет единственным местом, где могут возникать побочные эффекты.

Я был очень удивлен, когда смотрел презентациюот Нира Кауфмана, и я призываю вас посмотреть его выступление на ReactNYC Advanced Redux Patterns - Нир Кауфман @ ReactNYC .Это видео мне очень помогло, когда я больше всего боролся с Redux.

Также есть второй рассказ о Redux и промежуточном программном обеспечении от Nir.Вы можете проверить второй здесь Advanced Redux: шаблоны проектирования и практики - Нир Кауфман |JSHeroes 2018

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...