Reactjs 为什么axios.get不';当我使用redux时无法工作?

Reactjs 为什么axios.get不';当我使用redux时无法工作?,reactjs,redux,react-redux,axios,redux-thunk,Reactjs,Redux,React Redux,Axios,Redux Thunk,我正在用json文件中的图片创建一个页面。它一直工作到我添加redux。我在redus完全是个新手,所以我希望你能帮我找到我的错误。多谢各位 import React, { useEffect } from "react"; import { useDispatch, useSelector } from "react-redux"; import { getCards } from "../cardsActions"; import

我正在用json文件中的图片创建一个页面。它一直工作到我添加redux。我在redus完全是个新手,所以我希望你能帮我找到我的错误。多谢各位

import React, { useEffect } from "react";
import { useDispatch, useSelector } from "react-redux";
import { getCards } from "../cardsActions";
import PortfolioItem from "../Pages/PortfolioItem";

export default function Portfolio() {

  const dispatch = useDispatch();
  const cardsListData = useSelector((state) => state.cardsList);
  const { loading, error, cards } = cardsListData;
  useEffect(() => {
    dispatch(getCards());
  }, [dispatch]);

  return (
    <div className="container">
      <div className="portfolio-wrapper">
        {loading
          ? "Loading..."
          : error
          ? error.message
          : cards.map((card) => <PortfolioItem key={card.id} {...card} />)}
      </div>
    </div>
  );
}

以下是完整代码:

看起来您在redux应用商店中将卡添加到了错误的密钥:

case GET_CARDS:
  return {
    ...state,
    users: action.payload, // <-- users isn't accessed in UI
    loading: false
  };

我不得不模拟一个JSON API端点,但只需将其交换即可继续跟踪您的代码。除非您的特定本地服务器设置有任何问题(即假设您的服务器正确地提供了
portfolio data.json
文件),这至少可以解决您的更新状态和UI问题。

axios逻辑在哪里?这是否包含在异步操作中?您的codesandbox缺少一些文件,无法运行。您的服务器是否运行在
http://localhost:3003
?获取时是否看到错误?你能更好地描述一下redux到底有什么不起作用吗?@DrewReese我刚刚在codesandbox中添加了完整的代码。我遇到了一个错误,
在路径“../Pages/PortfolioItem”中找不到模块,路径是相对于codesandbox中的“/src/Pages/Portfolio.js”
。您的问题不可复制。
Portfolio
中有一个关于如何导入组件的问题(错误路径)。我同意该问题不可复制,因为
package.json
中也缺少
react boostrap
依赖项@daryalewy如果你真的想得到帮助,请检查你的代码并更新帖子。@yudhiesh我完成了代码并添加了我所有的内容。
case GET_CARDS:
  return {
    ...state,
    users: action.payload, // <-- users isn't accessed in UI
    loading: false
  };
case GET_CARDS:
  return {
    ...state,
    cards: action.payload, // <-- save payload to cards state
    loading: false
  };