【问题标题】:ts:How to access the state inside redux storets:如何访问redux store里面的state
【发布时间】:2021-07-05 09:12:05
【问题描述】:

我的 reducer 集合存储在 rootReducer 中(有普通 reducer 和 slice reducer)。

我需要使用 useSelector 钩子访问这些 reducer 中的状态。

我的商店:

const store = configureStore({reducer : rootReducer});

RootReducer:

const reducers = {
  getName,
  getSomething,
  getCollection,
  getSomethingelse
}
const rootReducer = combineReducers(reducers);

Sample Reducers(createSlice):

const initialState:any = {
    nameList:[]
}

const setNameList = createSlice({
    name:"setNameList",
    initialState,
    reducers:{
        setNameList(state,action){
            state.nameList.push(action.payload);
        }
    }
});

另一个 Sample Reducer(正常):

export default function somethingReducer(state = {
    something:{}
}, action) {
    switch(action.type){
        case C.SOMETHING_ZONE:{        
            return {
                ...state
                ,something :action.payload
            }
        }
        default : {}
    }
    return state
}

我试过了,

  const name = useSelector(state => state.getName.nameList)
  const something = useSelector(state => state.getSomething.something)

但出现错误:Property 'getName' does not exist on type 'DefaultRootState'.

【问题讨论】:

    标签: reactjs typescript redux react-redux redux-toolkit


    【解决方案1】:

    您的 RootReducer 有问题。按照以下方式更改 const 变量:

    const reducers = {
      getName: setNameList.reducer,
      getSomething: somethingReducer.reducer  
    }
    

    不要忘记导入reducer并以同样的方式使用其他reducer。

    【讨论】:

      猜你喜欢
      • 2018-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多