调度没有定义 - ReatcJs

时间:2017-04-08 06:34:29

标签: reactjs

我尝试从有相同问题的来源寻找答案,但对我的案例没有用。 我正在使用此功能为我的应用程序获取一些设置: 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文件导入的函数,该函数基本上发送响应以获取数据。通过上面的调用,它进入成功调用但是说:"调度未定义"。不知道如何让这个工作..任何想法???

1 个答案:

答案 0 :(得分:0)

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

npm install --save redux-thunk

然后,从actionTypes.js文件导入一个actionTypes对象,该对象存储所有动作类型。基本上,应该使用actionTypes代替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));
        });
    }
};