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().urlfetchStars(url,username,password).then(res=>{dispatch({type:GET_STARS,stars:res})}).catch(err=>{console.log(err)})}}其中getStars依赖getUserInfo返回的数据,但是我不想把getStars放进getUserInfo的then方法中,那样就把两个action揉到一起了,想问问大家有没有什么好的解决方案。
2 回答
DIEA
TA贡献1820条经验 获得超2个赞
可以把这个过程看做组件更新的过程。state初始状态{url:'XXX',username:'',password:''},组件最开始用这个初始状态会渲染一次,当登录验证成功后,username,password会更新状态,组件的componentWillReceiveProps(nextProps)会被调用,在其中比较nextProps.username、nextProps.password和this.props.username、this.props.password是否发生了改变,发生改变说明user发生变化,再dispatchgetStars这个action完成更新。
添加回答
举报
0/150
提交
取消