首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Redux + Axios“操作必须是普通对象。使用自定义中间件进行异步操作。”

Redux + Axios“操作必须是普通对象。使用自定义中间件进行异步操作。”
EN

Stack Overflow用户
提问于 2017-06-14 03:17:54
回答 2查看 866关注 0票数 1

几个小时以来,我一直在研究类似的堆叠溢出问题/解决方案,但这些问题似乎都没有解决我的问题。基本上,我试图设置Redux,以便在我的操作中进行API调用,如下所示:

代码语言:javascript
运行
复制
export function loadUserInfo(){
    return function(dispatch){
        return axios.get('/api/auth/GetUsername', config).then(response=>{
        dispatch(loadUserSuccess(response.data.username));
    }).catch(function(error){
        throw(error);
    });
};

在"axios“之前,我尝试过使用或不使用返回语句,但是我始终得到以下错误:

“操作必须是普通对象。使用自定义中间件进行异步操作。”

我相信我已经正确配置了我的中间件:

代码语言:javascript
运行
复制
export default function configureStore(initialState){
    return createStore(
        rootReducer,
        initialState,
        applyMiddleware(thunk, reduxImmutableStateInvariant())
);} 
EN

回答 2

Stack Overflow用户

发布于 2017-06-14 03:34:33

我相信你的问题是格式问题,你试图抓住失败的承诺,在返回的雷鸣。

代码语言:javascript
运行
复制
export function loadUserInfo(){
    return dispatch => {
        return axios.get('/api/auth/GetUsername', config)
            .then(response => dispatch(loadUserSuccess(response.data.username)))
            .catch(error => throw(error))
    }
};
票数 0
EN

Stack Overflow用户

发布于 2017-06-14 03:53:17

代码语言:javascript
运行
复制
dispatch(loadUserSuccess(response.data.username))
  • 您正在传递一个函数loadUserSuccess以进行调度,因此loadUserSuccess必须返回一个对象。
  • loadUserSuccess(response){ return {type:"success", payload:response} }
  • 类似于that.Through,这个减速器将能够知道哪个动作已经被分派了。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44534817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档