请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

 

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

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

正在回答 回答被采纳积分+3

3回答

phoock 2018-06-27 15:36:25

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

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

0 回复 有任何疑惑可以回复我~
nc1199 2018-03-23 17:39:31

要跳到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 回复 有任何疑惑可以回复我~
慕丝4433203 2017-12-22 03:33:32

老师的代码中. 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 回复 有任何疑惑可以回复我~
  • 提问者 慕粉0019008925 #1
    老师还是跳转不到boss界面,我改成payload.avatar这个值为空
    回复 有任何疑惑可以回复我~ 2017-12-23 02:09:22
  • 了解菌 回复 提问者 慕粉0019008925 #2
    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 15:11:59
问题已解决,确定采纳
还有疑问,暂不采纳
Redux+React Router+Node.js全栈开发
  • 参与学习       1822    人
  • 解答问题       750    个

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

了解课程
意见反馈 帮助中心 APP下载
官方微信