我想将用户重定向到某个地方,如果他/她已登录,我可以使用Promise来执行此操作,但我的redux thunk async并不会将响应中的任何内容返回给组件。
export function loginUser(email,password){
return dispatch=>{
return axios.post('auth/login', {email,password})
.then(res=>{
if(res.status===200 && res.data.status===1){
//things are working here
dispatch({
type: AUTH_SUCCESS,
payload: res.data.data
})
}
})
.catch(res => {
dispatch(errorMsg(res.data.msg))
})
}
}
在我的组件中我做了
componentDidMount() {
this.props.loginUser('username', 'pass')
.then(resp => {
console.log(resp) //this is undefined?!
})
}
我试过这个
return dispatch({
type: AUTH_SUCCESS,
payload: res.data.data
})
它也不起作用。
除了使用then之外,我还能做些什么来将用户重定向到登录页面?
答案 0 :(得分:2)
您还必须从Promise的.then()
和.catch()
回调中返回:
export function loginUser(email,password){
return dispatch=>{
return axios.post('auth/login', {email,password})
.then(res=>{
if(res.status===200 && res.data.status===1){
//things are working here
dispatch({
type: AUTH_SUCCESS,
payload: res.data.data
})
// return when success
return {
type: AUTH_SUCCESS,
payload: res.data.data
}
}
// return if failed, you can also return Promise.reject to invoke the .catch
return "something"
})
.catch(res => {
dispatch(errorMsg(res.data.msg))
// return error message
return res.data.msg;
})
}
}
答案 1 :(得分:0)
您可以返回
之类的承诺textbox.Document.Blocks.Clear();