为了账号安全,请及时绑定邮箱和手机立即绑定

在React-Router v4中以编程方式导航

在React-Router v4中以编程方式导航

慕村225694 2019-10-21 15:02:12
完成某些验证后,如何移动到新页面React Router V4?我有这样的事情:export class WelcomeForm extends Component {    handleSubmit = (e) => {        e.preventDefault()        if(this.validateForm())            // send to '/life'    }    render() {        return (            <form className="WelcomeForm" onSubmit={this.handleSubmit}>                <input className="minutes" type="number" value={this.state.minutes} onChange={ (e) => this.handleChanges(e, "minutes")}/>            </form>        )    }}我想将用户发送到另一条路线。我看过Redirect,但似乎它将从我不想要的历史记录中删除当前页面。
查看完整描述

3 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

您可以使用withRouter将history对象作为属性注入的高阶组件。然后,您可以history.push用来进行重定向:


import { withRouter } from 'react-router-dom';

...


class WelcomeForm extends Component {


    handleSubmit = (e) => {

        e.preventDefault()

        if(this.validateForm())

            this.props.history.push('/life');

    }


    render() {

        return (

            <form className="WelcomeForm" onSubmit={this.handleSubmit}>

                <input className="minutes" type="number" value={this.state.minutes} onChange={ (e) => this.handleChanges(e, "minutes")}/>

            </form>

        )

    }

}

export default withRouter(WelcomeForm);

要进行重定向,您还可以<Redirect to="/someURL" />在某些情况下使用,但是必须渲染此组件,因此您必须在JSX中的某个位置使用它。


查看完整回答
反对 回复 2019-10-21
  • 3 回答
  • 0 关注
  • 1020 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信