我在用React从Redux调用状态时遇到一些麻烦

珍妮

嗨,我是新来的人,我正在用redux制作简单的购物车应用程序,并进行练习。然后我调用prouduct api数据并将其保存在称为产品的商店中,当用户单击按钮时,应将其保存为“购物车”状态。当我console.log(props.state.cart)向我显示用户单击的数据时,但是如果我尝试调用该数据,则向我显示错误地图不是函数。

产品清单.js

import React, { useEffect } from "react";
import { getAllProducts, getCartList } from "../../../actions/postActions";
import { connect } from "react-redux";
import PropTypes from "prop-types";
import { AddToCartButton } from "./AddToCartButton";
// import ShoppingCart from "../shoppingCart.js/ShoppingCart";

const ProductList = (props) => {
  useEffect(() => {
    props.getAllProducts();
  }, []);

  // when I console.log it shows the data which user clicked.
  console.log(props.cartList);
  const addToCart = async (item) => {
    props.getCartList(item);
  };

  return (
    <div>
      {props.products.map((x) => (
        <div key={x.id}>
          <img className="productImg" src={x.image} alt={x.title} />
          <h4>{x.title}</h4>
          <p>{x.price}€</p>
          <button onClick={() => addToCart(x)}>test cart</button>
          <AddToCartButton />
        </div>
      ))}

      <div>
        {props.cartList &&
          props.cartList.map((x) => <li key={x.id}>{x.title}</li>)}
      </div>
    </div>
  );
};

ProductList.propTypes = {
  getAllProducts: PropTypes.func.isRequired,
  products: PropTypes.array.isRequired,
  getCartList: PropTypes.func.isRequired,
  cartList: PropTypes.array.isRequired,
};
const mapStateToProps = (state) => ({
  products: state.items.allItems,
  cartList: state.items.cart,
});

export default connect(mapStateToProps, { getAllProducts, getCartList })(
  ProductList
);

postReducer.js

import { FETCH_PRODUCTS, SHOPPING_CART, AMOUNT, USERS } from "../actions/types";

const initialState = {
  allItems: [],
  cart: [],
  amount: 3,
 
};

export default function (state = initialState, action) {
  console.log(action.payload);
 //output: list of allItems and object of cart item which user clicked
  switch (action.type) {
    case FETCH_PRODUCTS:
      return {
        ...state,
        allItems: action.payload,
      };

    case SHOPPING_CART: {
      return {
        ...state,
        cart: action.payload,
      };
    }
    case AMOUNT: {
      return {
        ...state,
        amount: state.amount,
      };
    }
  

    default:
      return state;
  }
}

HMR

在减速器中尝试以下操作:

case SHOPPING_CART: {
  return {
    ...state,
    cart: [action.payload,...state.cart],
  };
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我在代码中打开切换按钮时遇到了一些麻烦

来自分类Dev

创建可启动USB时遇到一些麻烦

来自分类Dev

使用If / else时在javascript中遇到一些麻烦

来自分类Dev

CGPathMoveToPoint在创建路径时遇到一些麻烦

来自分类Dev

我在使用str_split时遇到了一些麻烦,它在我的语言中无法正常工作

来自分类Dev

我在使用驱动程序类中的一个类中的变量时遇到了一些麻烦

来自分类Dev

承诺,我在获取另一个函数的返回时遇到了一些麻烦

来自分类Dev

reactjs-我的函数在更新状态和使用Promise时遇到一些问题

来自分类Dev

大家好,我在使用pandasql运行简单的SQL查询时遇到了一些麻烦

来自分类Dev

我在使用Storyboard将单元格添加到UITableView中时遇到了一些麻烦

来自分类Dev

我在发送带有意图的整数数据时遇到了一些麻烦。(安卓)

来自分类Dev

今天在我的RegEx上遇到了一些麻烦

来自分类Dev

我在fwrite()和fread()上遇到了一些麻烦

来自分类Dev

在理解中间件时遇到一些麻烦

来自分类Dev

在获取选择哪个单选按钮并根据选择发出命令时遇到一些麻烦

来自分类Dev

在LINQPad中使用Process.Start()执行“ svn log”时遇到一些麻烦

来自分类Dev

在MySQL中查找字符串时遇到一些麻烦

来自分类Dev

Netbeans在使用c ++ std :: map :: operator []时遇到了一些麻烦

来自分类Dev

在C#中使用FileStreams删除文件时遇到一些麻烦

来自分类Dev

在Haskell中实现插入排序功能时遇到一些麻烦

来自分类Dev

从模块处理时Socket.io遇到一些麻烦

来自分类Dev

清除文本框时遇到一些麻烦 - tkinter - Python

来自分类Dev

在让 clojure.spec 练习 fn 工作时遇到一些麻烦

来自分类Dev

在编写和删除标点 python 时遇到一些麻烦

来自分类Dev

我正在创建一个用于蒸汽交易的机器人,在添加数组值时遇到了一些麻烦

来自分类Dev

我正在尝试创建一个放大到Python中的Mandelbrot集合的GIF,但在使用浮点数时遇到了一些麻烦

来自分类Dev

我正在创建一个用于蒸汽交易的机器人,在添加数组值时遇到了一些麻烦

来自分类Dev

在继承和子类方面遇到一些麻烦

来自分类Dev

在驱动程序类中使用一个类中的变量时遇到一些麻烦

Related 相关文章

  1. 1

    我在代码中打开切换按钮时遇到了一些麻烦

  2. 2

    创建可启动USB时遇到一些麻烦

  3. 3

    使用If / else时在javascript中遇到一些麻烦

  4. 4

    CGPathMoveToPoint在创建路径时遇到一些麻烦

  5. 5

    我在使用str_split时遇到了一些麻烦,它在我的语言中无法正常工作

  6. 6

    我在使用驱动程序类中的一个类中的变量时遇到了一些麻烦

  7. 7

    承诺,我在获取另一个函数的返回时遇到了一些麻烦

  8. 8

    reactjs-我的函数在更新状态和使用Promise时遇到一些问题

  9. 9

    大家好,我在使用pandasql运行简单的SQL查询时遇到了一些麻烦

  10. 10

    我在使用Storyboard将单元格添加到UITableView中时遇到了一些麻烦

  11. 11

    我在发送带有意图的整数数据时遇到了一些麻烦。(安卓)

  12. 12

    今天在我的RegEx上遇到了一些麻烦

  13. 13

    我在fwrite()和fread()上遇到了一些麻烦

  14. 14

    在理解中间件时遇到一些麻烦

  15. 15

    在获取选择哪个单选按钮并根据选择发出命令时遇到一些麻烦

  16. 16

    在LINQPad中使用Process.Start()执行“ svn log”时遇到一些麻烦

  17. 17

    在MySQL中查找字符串时遇到一些麻烦

  18. 18

    Netbeans在使用c ++ std :: map :: operator []时遇到了一些麻烦

  19. 19

    在C#中使用FileStreams删除文件时遇到一些麻烦

  20. 20

    在Haskell中实现插入排序功能时遇到一些麻烦

  21. 21

    从模块处理时Socket.io遇到一些麻烦

  22. 22

    清除文本框时遇到一些麻烦 - tkinter - Python

  23. 23

    在让 clojure.spec 练习 fn 工作时遇到一些麻烦

  24. 24

    在编写和删除标点 python 时遇到一些麻烦

  25. 25

    我正在创建一个用于蒸汽交易的机器人,在添加数组值时遇到了一些麻烦

  26. 26

    我正在尝试创建一个放大到Python中的Mandelbrot集合的GIF,但在使用浮点数时遇到了一些麻烦

  27. 27

    我正在创建一个用于蒸汽交易的机器人,在添加数组值时遇到了一些麻烦

  28. 28

    在继承和子类方面遇到一些麻烦

  29. 29

    在驱动程序类中使用一个类中的变量时遇到一些麻烦

热门标签

归档