Redux корзина с уменьшением количества товара

Я хочу реализовать программу корзины покупок redux с опцией reduct. страница cart.js

const addedIds = (state = initialState.addedIds, action) => {
  switch (action.type) {
    case ADD_TO_CART:
      if (state.indexOf(action.productId) !== -1) {
        return state
      }
      return [ ...state, action.productId ]

      case REDUCT_FROM_CART:
       return state.filter(productId => action.productId !== productId)
    default:
      return state
  }
}

const quantityById = (state = initialState.quantityById, action) => {

  switch (action.type) {
    case ADD_TO_CART:
      const{ productId } = action
      return { ...state,
        [productId]: (state[productId] || 0) + 1
      }

      case REDUCT_FROM_CART:

      return { ...state,
        [productId]: state[productId] - 1
      } 
      default:
      return state
  }
}

& это страница ProductItem

const ProductItem = ({ product, onAddToCartClicked, onReductFromCartClicked }) => (
  <div style = {{ marginBottom: 20 }}>
    <Product
      title = {product.title}
      price = {product.price}
      quantity = {product.inventory} />
    <button
      onClick = {onAddToCartClicked}
      disabled = {product.inventory > 0 ? '' : 'disabled'}>
      {product.inventory > 0 ? 'Add to cart' : 'Sold Out'}
    </button>
    <button 
    onClick = {onReductFromCartClicked}
      disabled = {product.inventory < 0 ? 'disabled' :'' }>
      {product.inventory < 0 ? 'No Item' : 'Reduct from cart' }
    </button>

  </div>
)

Какие все изменения заставляют эту программу правильно работать с функцией reduct? Нужно ли изменить какую-либо другую часть кода, а не приведенный выше код? Пожалуйста, помогите мне разобраться с этой проблемой. Спасибо

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
305
1

Ответы 1

case REMOVE_TO_CART:
        console.info("removed ADD");

      return [ ...state.slice(0,state.indexOf(action.productId),
          ...state.slice(state.indexOf(action.productId)+1))
      ];
    default:
      return state

этот код может быть полезен для решения вашей проблемы

Спасибо, Лея. Но мне нужны полные изменения, которые я должен внести в свой код .. Кто-нибудь может мне помочь, пожалуйста ??

Leya Varghese 27.03.2018 10:45

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