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