react中js跳转路由

1、要引入Redirect

import {
    BrowserRouter as Router,
    Route,
    Link,
    Redirect,
    withRouter
} from "react-router-dom";

2、定义一个flag

this.state = {
    loginFlag:false
};

3、render里面判断flag 来决定是否跳转

if(this.state.loginFlag){

    return <Redirect to={{ pathname: "/" }} />;
}

4、要执行js跳转

通过js改变loginFlag的状态

改变数据以后会执行一系列的函数 其中也会执行render方法 就可以通过Redirect自己来跳转

doLogin=(e)=>{
    e.preventDefault()
    let username = this.refs.username.value
    let password = this.refs.password.value
    console.log(username,password)
    if(username=='admin' && password== '123456'){
        this.setState({
            loginFlag: true
        })
    }else {
        alert('登录失败')
    }
}

以下是整个代码

import React , { Component } from 'react'
import { Redirect} from "react-router-dom";

class Login extends Component  {
    constructor(props){
        super(props)//用于父子组件传值 固定写法
        this.state={
            loginFlag:false
        }
    }
    
    doLogin=(e)=>{
        e.preventDefault()
        let username = this.refs.username.value
        let password = this.refs.password.value
        console.log(username,password)
        if(username=='admin' && password== '123456'){
            this.setState({
                loginFlag: true
            })
        }else {
            alert('登录失败')
        }
    }
    
    render(){

        if(this.state.loginFlag){

            return <Redirect to={{ pathname: "/" }} />;
        }
        return(
            <div className='login'>
                <h1>登录页面</h1>
                <br/> <br/>
                <form onSubmit={this.doLogin}>
                    <input ref='username'/><br/><br/>
                    <input type='password' ref='password'/><br/><br/>
                    <input type='submit' value='登录' />
                </form>

            </div>
        )
    }

}



export default Login
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值