为什么购物车React-Redux不更新?

阿里·洛特菲

我正在使用react-redux构建购物车。我希望能够在添加金额(初始1件)之后将产品添加到购物车。并且,如果用户希望,它可以更新该金额(更高或更低)。

目前,我仍然遇到相同的问题,添加了一种产品,但用户无法再对其进行更新。

调度代码

  function addToCart() {
    console.log(oneBox);

    dispatch(addCart(oneBox));
  }

然后是动作代码:

export const addCart = (oneBox) => {
  return async (dispatch, getState) => {
    dispatch(appLoading());

    const curCart = getState().cart;

    console.log(curCart);

    let productCart = { ...oneBox };

    productCart = { ...productCart, amount: 1 };

    if (!curCart.cart) {
      dispatch(addCartSuccess([productCart]));
    } else {
      if (parseInt(curCart.cart.map((cart) => cart.id)) === oneBox.id) {
        dispatch(updateCartSuccess(oneBox));
      } else {
        dispatch(addCartSuccess([productCart]));
      }
    }

    dispatch(appDoneLoading());
  };
}:

然后是减速器代码:

export default  (state = initialState, { type, payload }) => {

  switch (type) {
    case ADD_CART_SUCCESS:
      return { ...state.cart, ...payload };

    case UPDATE_CART_SUCCESS:
      console.log(payload);
      return {
        ...state,
        cart: state.cart.map((cart) => {
          if (cart.id === payload.id) {
            return {
              ...cart,
              amount: payload.amount + 1,
            };
          }

          return cart;
        }),
      };

它需要做的是首先检查发送的产品ID(oneBox)是否已经在购物车中,如果没有,则将产品添加到购物车中(工作正常)。如果产品已经在购物车中,请更新数量(无效)。

有人可以在这里看到我在做什么吗?

ps。忍受我是初级开发人员。我不知道基于类的react或mapStateToProps。

活力阿克巴

我认为将cart与oneBox进行比较时,这行有问题,因为调用parseInt数组只会解析第一个元素。我假设您要检查购物车中的item.id之一是否与oneBox.id相匹配。这是做到这一点的一种方法

if (curCart.cart.filter((cart) => cart.id === oneBox.id).length) {
  dispatch(updateCartSuccess(oneBox));
}

上面的代码过滤与oneBox.id ..相匹配的购物车。如果未找到任何内容,则将生成长度为0(虚假)的空数组。如果找到,则该数组将大于0(最有可能为1,这是事实)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery购物车数量更新按钮?

来自分类Dev

更新产品购物车会话

来自分类Dev

Laravel中的购物车更新

来自分类Dev

购物车的商品不会更新数量

来自分类Dev

React Native,无法通过使用react -redux在购物车中添加项目

来自分类Dev

React + Redux:组件不更新

来自分类Dev

React Redux不更新状态

来自分类Dev

React redux 不更新组件

来自分类Dev

无法使用react native在redux的reducer中的购物车中添加现有产品

来自分类Dev

Redux + React Native将产品添加到购物车不起作用

来自分类Dev

将现有项目添加到购物车(React-Redux)

来自分类Dev

无法使用react native在redux的reducer中的购物车中添加现有产品

来自分类Dev

Magento:对购物车进行任何更新,最好观察一下什么事件

来自分类Dev

如何在购物车更新时更新购物车中的其他属性?

来自分类Dev

更改数量并单击“更新购物车”后,Woocommerce 购物车不会更新

来自分类Dev

如果购物车中已存在商品-reactjs,如何更新购物车数量?

来自分类Dev

购物车更新后,WooCommerce购物车数量不会改变

来自分类Dev

Redux-persist 不坚持数量,但仍然坚持购物车总数?

来自分类Dev

用于添加到购物车的 redux concat 数组

来自分类Dev

打开购物车扩展程序,告诉朋友不工作

来自分类Dev

在用户点击“查看购物车”之前,我可以使“转到购物车”不启动购物车吗?

来自分类Dev

购物车总额未更新,但覆盖了购物车价格

来自分类Dev

当购物车内容更改时更新自定义 WooCommerce 迷你购物车

来自分类Dev

保存订单前更新magento购物车总额

来自分类Dev

使用WooCommerce Ajax更新购物车

来自分类Dev

WooCommerce AJAX购物车更新后运行jQuery

来自分类Dev

在symfony2中更新购物车会话

来自分类Dev

在woocommerce购物车更新上发送额外的数据

来自分类Dev

如何更新购物车中的项目数?

Related 相关文章

  1. 1

    jQuery购物车数量更新按钮?

  2. 2

    更新产品购物车会话

  3. 3

    Laravel中的购物车更新

  4. 4

    购物车的商品不会更新数量

  5. 5

    React Native,无法通过使用react -redux在购物车中添加项目

  6. 6

    React + Redux:组件不更新

  7. 7

    React Redux不更新状态

  8. 8

    React redux 不更新组件

  9. 9

    无法使用react native在redux的reducer中的购物车中添加现有产品

  10. 10

    Redux + React Native将产品添加到购物车不起作用

  11. 11

    将现有项目添加到购物车(React-Redux)

  12. 12

    无法使用react native在redux的reducer中的购物车中添加现有产品

  13. 13

    Magento:对购物车进行任何更新,最好观察一下什么事件

  14. 14

    如何在购物车更新时更新购物车中的其他属性?

  15. 15

    更改数量并单击“更新购物车”后,Woocommerce 购物车不会更新

  16. 16

    如果购物车中已存在商品-reactjs,如何更新购物车数量?

  17. 17

    购物车更新后,WooCommerce购物车数量不会改变

  18. 18

    Redux-persist 不坚持数量,但仍然坚持购物车总数?

  19. 19

    用于添加到购物车的 redux concat 数组

  20. 20

    打开购物车扩展程序,告诉朋友不工作

  21. 21

    在用户点击“查看购物车”之前,我可以使“转到购物车”不启动购物车吗?

  22. 22

    购物车总额未更新,但覆盖了购物车价格

  23. 23

    当购物车内容更改时更新自定义 WooCommerce 迷你购物车

  24. 24

    保存订单前更新magento购物车总额

  25. 25

    使用WooCommerce Ajax更新购物车

  26. 26

    WooCommerce AJAX购物车更新后运行jQuery

  27. 27

    在symfony2中更新购物车会话

  28. 28

    在woocommerce购物车更新上发送额外的数据

  29. 29

    如何更新购物车中的项目数?

热门标签

归档