我要从组件中调用以下内容
const getUserAction = () => {
return dispatch => {
dispatch(request());
return getUser()
.then(
response => {
dispatch(success());
console.log(response);
return response
},
error => {
dispatch(failure(error));
}
)
};
};
然后在组件上,我正在分派此操作:
this.props.dispatch(getUserAction())
.then(response => console.log(response))
}
我正在从操作中获得控制台日志之前,从上述组件中触发了控制台日志。
这是为什么?我是在做错什么还是预期的行为?为什么操作中的控制台日志等待响应,而同一操作中的return语句却不等待?
然后,如果不通过reducer,如何在组件中获得响应?
答案 0 :(得分:1)
const getUserAction = (cb) => {
return dispatch => {
dispatch(request());
return getUser()
.then(
response => {
dispatch(success());
console.log(response);
// success callback with response
cb(null /** no error hence null */, response)
return response
},
error => {
dispatch(failure(error));
}
)
};
};
像这样打电话:
this.props.dispatch(getUserAction((err, success) => {
if(err){
// Handle error here
return;
},
// Success handle
console.log(response))
}));