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

使用react-redux的useSelector时状态key为reducer名,如何直接获取state.contacts

解决方案

你当前的状态结构携带reducer名称作为顶层键,根源是你在注册reducer到根store时,给对应reducer分配的键名为saveContactsReducer,修改这个键名即可实现需求,具体调整步骤如下:

  • 第一步:修改根reducer配置
    分两种常见场景调整:
    如果你使用原生Redux的combineReducers合并reducer,把原来的配置:
    import { combineReducers } from 'redux'
    import saveContactsReducer from './你的reducer文件路径'
    
    const rootReducer = combineReducers({
      // 这里的键名就是state的顶层键名
      saveContactsReducer: saveContactsReducer
    })
    
    修改为:
    const rootReducer = combineReducers({
      contacts: saveContactsReducer
    })
    
    如果你使用Redux Toolkit的configureStore配置store,把原来的配置:
    import { configureStore } from '@reduxjs/toolkit'
    import saveContactsReducer from './你的reducer文件路径'
    
    export const store = configureStore({
      reducer: {
        saveContactsReducer: saveContactsReducer
      }
    })
    
    修改为:
    export const store = configureStore({
      reducer: {
        contacts: saveContactsReducer
      }
    })
    
  • 第二步:同步调整useSelector取值逻辑
    之后在组件里获取状态时,直接通过state.contacts取值即可:
    const { contactsDetails, currentUserName } = useSelector(state => state.contacts)
    

注意:如果项目其他位置还有通过state.saveContactsReducer取值的代码,需要同步替换为state.contacts,避免取值为undefined报错。

内容的提问来源于stack exchange,提问作者Seeta Ram Yadav

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:06:03