Dispatch is not defined-ReatcJs



我尝试从具有相同问题的来源中寻找答案,但不适用于我的情况。我正在使用此函数为我的应用程序获取一些设置:.js:

export function _someFun() {
    setData("abc").then(res => {
        dispatch({ type: ACTION.SET_USER_SUCCESS, res });
      }, (error) => {
        dispatch({ type: ACTION.SET_USER_FAILURE, error });
    });
}

其中:setData是我从 Api 文件导入的一个函数,它基本上发送响应来获取数据。通过上述调用,它进入成功调用,但说:"调度未定义"。不知道如何让它工作..有什么想法吗???

你需要先安装 redux-thunk 中间件:

npm install --save redux-thunk

然后,从存储所有操作类型的 actionTypes.js 文件中导入一个 actionTypes 对象。基本上,你应该使用actionType而不是ACTION。这样更明确和清晰。

然后在您的动作创建器文件中尝试此操作:

export const setUserSuccess = (response) => {
    return {
        type: actionTypes.SET_USER_SUCCESS,
        payload: {
            response: response
        }
    }
};

export const setUserFailure = (error) => {
    return {
        type: actionTypes.SET_USER_FAILURE,
        payload: {
            error: error
        }
    }
};
export const _someFun = () => {
    // Using the redux-thunk middleware
    return dispatch => {
        setData("abc")
            .then(response => {
                dispatch(setUserSuccess(response));
            }).catch(error => {
            dispatch(setUserFailure(error));
        });
    }
};

相关内容

最新更新