前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >React登录跳转遇到的问题

React登录跳转遇到的问题

作者头像
治电小白菜
发布2020-08-25 15:04:44
1.7K0
发布2020-08-25 15:04:44
举报
文章被收录于专栏:技术综合技术综合

最近在对接登录接口,但是对接好后,跳转不会搞。。。醉了 环境: 1.React16 2.React Router v4

1.方法一

这个方法完美解决。

图片.png

具体就是,要自己新建一个history.js文件,然后将它引入router和登录中。

上图很清楚,有问题直接评论

2.方法二

当然,v4上 BrowserRouter 提供了 hisotry 对象,所以有了方法二.可以使用withRouter;API文档:https://reacttraining.com/react-router/web/api/withRouter

1.路由代码,使用BrowserRouter
......
import {BrowserRouter, Route, Switch, Redirect} from "react-router-dom";
......

const App = () => (

  <main>
    <BrowserRouter>
      <Switch>
        <Redirect exact from="/" to="/manage/foods"/>
        <Route exact path='/login' component={Login}/>
......
2.请求代码

具体的helper请求封装,请看这篇文章最下面:http://www.jianshu.com/p/4da550ac7f15

1)请求跳转函数

handleLogin =(e) => {
    e.preventDefault()
    this.props.form.validateFields((err, values)=>{
      if(!err){
        let data={}
        data.username = values.username
        data.password = values.password
        loginReq(data)
          .then(function(req){
            if(req ==='success'){
              //登录成功跳转
              this.props.history.push('/')
            }else if(req === 'error'){
              message.error('用户名或密码错误!')
            }
          }.bind(this))//这里需要把this绑定,不然报错
      }
    })
  }

2)组件放入withRouter

......
import { withRouter} from 'react-router-dom'
......
export default withRouter(Form.create({
  mapPropsToFields(props) {
    return {
      username: { value: '' },
      password: { value: '' },
      autologin: { value: '' }
    }  
  }
})(LoginForm))

参考资料

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.方法一
  • 2.方法二
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档