在bossinfo页面跳转不到boss界面,以下代码和老师的一样

来源:7-2 完善信息-boss 信息完善页面后端

慕粉0019008925

2017-12-21

 

我的bossinfo.js中this.props.location.pathname等于this.props.redirect

{redirect&&redirect!==path?<Redirect to={this.props.redirect} />:null}

写回答

3回答

phoock

2018-06-27

你要选择头像以后再点提交,

逻辑里不选择头像avatar的值就为空,redirectTo的值会加上'info)

0
0

nc1199

2018-03-23

要跳到boss界面的整个逻辑是:

1、在bossinfo.js中,利用AvatarSelector组件为子元素props添加了一个函数,并且该函数就是为state设置avatar值。

2、avatar值通过保存按钮(也就是update函数)提交到数据库,并且数据库返回的data中包含avatar这个值。

3、数据库返回data值后(返回avatar后)通过dispatch=>authSuccess函数将data值(avatar)放在action.payload上,并且通过user这个函数去判断action.type时执行了getRedirectPath(action.payload)函数,同时将state的值更新(这一步将redirectTo字段放进state对象中)。

4、通过reducer.js整合所有state后,在index.js中利用createStore设置了整个页面的props~也就是加入了props.redirectTo~

5、最终bossinfo.js中执行的判读语句{this.props.redirectTo ? <Redirect to={this.props.redirectTo}></Redirect> : null} 才得以实现跳转操作~

0
0

慕丝4433203

2017-12-22

老师的代码中. util.js是传入(payload, avatar),其中,payload包含了avatar的信息,但是这个avatar一直为空。所以需要从payload中提取avatar.

export function getRedirectPath(payload) {
   let type = payload.type;
   let avatar = payload.avatar;
   let url = (type==='boss')?'/boss':'/genius'
   if(!avatar){
       url += 'info'
   }
   return url
}

0
2
了解菌
回复
慕粉0019008925
export function update(data){ return dispatch=>{ axios.post('/user/update', data) .then(res=>{ if (res.status===200&&res.data.code===0) { check一下 有没有走到这边 dispatch(authSuccess(res.data.data)) } else { dispatch(errorMsg(res.data.msg)) } }) } }
2017-12-31
共2条回复

Redux+React Router+Node.js全栈开发

全网唯一的React 16+Redux+React Router4实战课程,学到手是你的真本领!

1822 学习 · 750 问题

查看课程