簡體   English   中英

useSelector state 返回 undefined (React-Redux)

[英]useSelector state returns undefined (React-Redux)

我檢查了我的操作,reducers 通過控制台記錄有效載荷,並且我按預期從 api 獲取數據,但是當我想使用 useSelector 掛鈎使用我的 state 值時,我遇到了問題。

這是我的 Post 組件,我想在其中使用來自 postsReducer reducer 的帖子 state。 (在下面)

在此處輸入圖像描述

import React from "react";
import { useSelector } from "react-redux";

function Post() {

    const posts = useSelector((state) => state.postsReducer);
    console.log(posts); //undefined

    return (
        <>
            This is a single post
        </>
    );
}

這是我的 App 組件,我在其中發送了獲取操作以從 api 獲取數據。(在下方)

在此處輸入圖像描述

動作(下)

在此處輸入圖像描述

減速器。 (在下面)

在此處輸入圖像描述

所有 API 電話都工作正常。
只有useSelector讓我頭疼!

最后我解決了這個問題,這很奇怪,但我什么也沒做,我做了什么,我在我的 reducers 文件夾中創建了一個 index.js 文件,用於組合所有 reducer 文件(在這種情況下我只有一個,但仍然存在)然后導出它它奏效了!

import { combineReducers } from "redux";
import { postsReducer } from "./posts";

const allReducers = combineReducers({postsReducer});

export default allReducers;

在某些情況下,拼寫錯誤也會導致相同的錯誤。 例如,您的 reducer 可能是 postReducer 但您以 postsReducer 的形式訪問它

const posts = useSelector((state) => state.postsReducer);
    console.log(posts); //undefined

Provider 需要和allReducers一起引入。

export const allReducers = combineReducers({
  content: contentReducer,
});

let store = createStore(
  allReducers,
  composeWithDevTools()
);

我討厭它。 如果這是強制性的,為什么還有其他選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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