Reactjs 为什么axios.get不';当我使用redux时无法工作?
我正在用json文件中的图片创建一个页面。它一直工作到我添加redux。我在redus完全是个新手,所以我希望你能帮我找到我的错误。多谢各位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
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
};