Redux Toolkit如何确定state对象属性名?为何selectCount需使用state.counter
Redux Toolkit 根state属性名生成逻辑
你访问的state.counter里的counter属性名,和当前slice内部的配置没有直接关联,它是你在项目根store配置阶段指定的挂载key:
- 所有slice的reducer最终都需要传入
configureStore的reducer参数进行注册,这个参数是一个对象,对象的每一个key就对应根state上的属性名,对应的值就是对应slice导出的reducer。 - 你项目里的store配置肯定类似如下代码:
import { configureStore } from '@reduxjs/toolkit' import countersReducer from './当前slice的文件路径' export const store = configureStore({ reducer: { // 这里的key就是你根state上的属性名,你此处写的是counter,所以访问时就需要用state.counter counter: countersReducer } })
- 你当前slice里
createSlice传入的name字段的作用是为该slice生成的action自动加前缀,避免不同slice的action重名,比如你这个slice的updateCounter对应的action type就是based? based on what/updateCounter,和根state的挂载key没有任何关系,不要混淆这两个配置项。
如果后续你修改了store配置里的挂载key,对应的selector里的访问路径也要同步修改即可。
内容的提问来源于stack exchange,提问作者ontley
相关产品推荐
相关产品推荐

