Как получить доступ к состоянию другого редуктора в Redux - PullRequest
0 голосов
/ 29 октября 2019

Итак, я новичок в React и пытаюсь создать простое приложение для покупок. Я также использую Redux store и Saga.
У меня есть два редуктора.

A productsReducer, который имеет следующее начальное состояние:

const initState = {
  products: [],
  loading: false
}

Я загружаю данные о товарах вproducts массив с get вызовом API.

У меня есть другой редуктор с именем cartReducer, который имеет следующее начальное состояние и должен реализовать и добавить действие в корзину:

const initState = {
  loading: false,
  cartItems: [],
  cartCount: 0
}

Код для добавления в корзину:

case 'ADD_TO_CART':
  let addedItem = state.products.find(product => product.id === action.id)
  // products array contained list of products
  let existed_item = state.cartItems.find(product => action.id === product.id)
  if (existed_item) {
    existed_item.quantity += 1
    return {
      ...state,
      cartItems: state.cartItems,
      cartCount: state.cartItems.length,
    }
  } else {
    let newItem = Object.assign({}, addedItem);
    newItem.quantity = 1;
    return {
      ...state,
      cartItems: [...state.cartItems, newItem],
      cartCount: state.cartItems.length,
    }
  }

Я объединяю оба редуктора следующим образом:

const rootReducer = combineReducers({
  cartReducer,
  productsReducer
})
export default rootReducer;

Изначально у меня были действия обоих редукторов в одном месте, чтобы я мог получить доступмассив products в моей функции ADD_TO_CART. Но теперь, когда я разделил действия на отдельные редукторы, я не знаю, как получить доступ к массиву products из productsReducer внутри cartsReducer.

Может кто-нибудь помочь?

...