簡體   English   中英

未捕獲(承諾中)錯誤:使用類型的操作調用時

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM