const requestUserInfo = (state = {}, action) => {
switch(action.type) {
case 'HEADER_GET_USERINFO':
axios.post('/user/getScores', qs.stringify({
token: token,
uid: uid
}))
.then(res => {
if(res.data.status !== 200) {
message.error(res.data.message)
return state
}
return { ...res.data.attachment, ...state }
})
break
default :
return state
}
}
// error
Uncaught Error: Given action "HEADER_GET_USERINFO", reducer "requestUserInfo" returned undefined. To ignore an action, you must explicitly return the previous state.
答案 0 :(得分:0)
你应该避免减压器内的副作用!
正如Redux官方教程中提到的那样:
你应该在减速机内做的事情:
- 改变其论点
- 执行API调用和路由转换等副作用
- 调用非纯函数,例如Date.now()或Math.random()。
醇>
您应该使用Async actions代替,它将执行API调用,并且至少可能会调度应该处理传入数据的操作。