在另一个状态内反应redux-thunk包装状态

问题描述

我是新来的反应者,现在我使用redux和redux-thunk创建了一个简单的应用程序,该应用程序异步调用API。这是我的游戏 gameAction:

export const fetchGamesStartAsync = () => {
return dispatch => {
    dispatch(fetchGamesStart());
    axiosGenCfg.post('/game/get',{
        "page" : 1,"size" : 10
    })
        .then(({ res }) => {
            dispatch(fetchGamesSuccess(res));
        })
        .catch(err => {
            dispatch(fetchGamesFailure(err.message));
        });
}
};


const fetchGamesStart = () => ({
    type: gameActionTypes.FETCH_GAMES_START,});

const fetchGamesFailure = () => ({
    type: gameActionTypes.FETCH_GAMES_FAILURE,});

const fetchGamesSuccess = (games) => ({
    type: gameActionTypes.FETCH_GAMES_SUCCESS,payload:{
        ...games
    }
});

这是我的 gameReducer:

const INITIAL_STATE= {
    gamesList : null,isFetching: false,errorMessage : undefined
};

const gameReducer = (state = INITIAL_STATE,action) => {
    switch (action.type) {
        case gameActionTypes.FETCH_GAMES_START:
            return{
                ...state,isFetching: true
            };
        case gameActionTypes.FETCH_GAMES_SUCCESS:
            return{
                ...state,gamesList: action.payload
            };
        case gameActionTypes.FETCH_GAMES_FAILURE:
            return{
                ...state,errorMessage: action.payload
            };
        default:
            return {
                state
            };
    }
};

rootReducer

export default combineReducers({
    admin : adminReducer,game: gameReducer,})

我还添加了redux-logger以检查状态,这就是我在控制台中看到的内容

enter image description here

那么为什么我的游戏对象中有2个状态等级?并且与admin对象相同。在将redux-thunk添加到项目之前,我没有这个问题。在添加redux-thunk currentAdmin之前是admin的直接子代。但是现在之间有一个状态对象。

解决方法

default:
        return {
            state
        };

应该是

default:
        return state

现在,每当您按下default时,state.whatever就会变成state.state.whatever

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...