You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用React Redux hooks获取store状态提示auth属性不存在如何解决?

问题排查与解决方案

1. 根reducer挂载键名不匹配

你在根reducer中注册auth reducer时使用的键名是authReducer,但调用useSelector时读取的是state.auth,二者键名不一致导致读不到对应状态。
修改根reducer代码,将挂载键名改为auth即可:

import { combineReducers } from "redux";
import authReducer from "./auth.reducer";

export default combineReducers({
    auth: authReducer // 此处修改键名
});

如果是纯JS项目,改完这一步就能解决报错。

2. TypeScript项目额外类型声明

如果你的项目用了TypeScript,还需要补充全局类型声明避免类型检查报错:
首先在store文件中导出RootState类型:

// auth.store.js 改为ts后缀,添加以下代码
import rootReducer from "../Reducers";
export type RootState = ReturnType<typeof rootReducer>;

方案一:单次指定类型

每次调用useSelector时主动传入RootState类型:

const { user: currentUser } = useSelector((state: RootState) => state.auth);

方案二:全局覆盖默认类型

新建react-redux.d.ts类型声明文件,添加以下代码全局覆盖默认RootState类型,之后所有useSelector调用都不需要额外指定类型:

import { RootState } from "./auth.store";

declare module "react-redux" {
  interface DefaultRootState extends RootState {}
}

内容的提问来源于stack exchange,提问作者AntonioSk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 21:27:03