猿问

redux 中一个 action 依赖另一个 action 异步获取的数据怎么做

exportfunctiongetUserInfo(username:string,password:string){
return(dispatch:any)=>{
returnfetchUser(username,password)
.then(res=>{
dispatch({
type:GET_USER_INFO,
userInfo:res
})
})
.catch(err=>{
console.log(err)
})
}
}
exportfunctiongetStars(username:string,password:string){
return(dispatch:any,getState:any)=>{
consturl=getState().url
fetchStars(url,username,password)
.then(res=>{
dispatch({
type:GET_STARS,
stars:res
})
})
.catch(err=>{
console.log(err)
})
}
}
其中getStars依赖getUserInfo返回的数据,但是我不想把getStars放进getUserInfo的then方法中,那样就把两个action揉到一起了,想问问大家有没有什么好的解决方案。
慕姐4208626
浏览 868回答 2
2回答

DIEA

可以把这个过程看做组件更新的过程。state初始状态{url:'XXX',username:'',password:''},组件最开始用这个初始状态会渲染一次,当登录验证成功后,username,password会更新状态,组件的componentWillReceiveProps(nextProps)会被调用,在其中比较nextProps.username、nextProps.password和this.props.username、this.props.password是否发生了改变,发生改变说明user发生变化,再dispatchgetStars这个action完成更新。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答