[英]Uncaught (in promise) Error: When called with an action of type
不知道我錯過了什么......請求沒問題,當我 console.log 進入動作創建者時我可以看到數據,但由於某種原因,reducer 無法正常工作。
這是代碼:
行動:
import jsonPlaceholder from "../apis/jsonPlaceholder";
export const fetchPosts = () => {
return async (dispatch) => {
const response = await jsonPlaceholder.get("/posts");
dispatch({ type: "FETCH_POSTS", payload: response.data });
};
};
////
jsonPlaceHolder.js
import axios from "axios";
export default axios.create({
baseURL: "https://jsonplaceholder.typicode.com/",
});
////
減速器:fetchData.js
const fetchData = (state = [], action) => {
switch (action.type) {
case "FETCH_POSTS":
return action.payloads;
default:
return state;
}
};
export default fetchData;
index.js
import { combineReducers } from "redux";
import fetchData from "./fetchData";
export default combineReducers({
post: fetchData,
});
///
const mapStateToProps = (state) => {
console.log(state);
return { posts: state };
};
export default connect(mapStateToProps, { fetchPosts })(PostList);
錯誤:
未捕獲(承諾中)錯誤:當使用“FETCH_POSTS”類型的操作調用時,鍵“post”的切片縮減器返回未定義。 要忽略某個操作,您必須顯式返回之前的狀態。 如果你希望這個 reducer 不保存任何值,你可以返回 null 而不是 undefined。
const fetchData = (state = [], action) => {
switch (action.type) {
case "FETCH_POSTS":
return action.payload; //fixed
default:
return state;
}
};
export default fetchData;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.