• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

react js用withRouter实现页面跳转

武飞扬头像
waoecher
帮助1

首先我们需要知道,我们需要实现页面跳转的组件是否是page层面的组件(即在APP.jsx中有router定义的组件),如果是,可以直接用this.props.history.push(path)实现。

那如果我们需要实现页面跳转的组件是page组件下的子组件应该怎么办呢?这种组件的this.props是undifined,所以我们需要从父组件(page层面的组件)传递props给子组件。

首先在父组件引入proptype(为了通过eslintrc的验证),并在父组件中定义proptype:

  1.  
    import LoginCard from "../components/LoginCard";//在父组件中引入子组件
  2.  
    import PropTypes from 'prop-types';
  1.  
    Login.propTypes = {
  2.  
    history:PropTypes.object,
  3.  
     
  4.  
    }
  5.  
    //Login为父组件名称
  6.  
    //注意:定义proptypes写在组件外

在父组件中引入子组件:

并利用history传this.props给子组件:

  1.  
    render() {
  2.  
     
  3.  
    const { history } = this.props;
  4.  
     
  5.  
     
  6.  
    return (
  7.  
    <LoginCard history={history}>
  8.  
    </LoginCard>
  9.  
    );
  10.  
    }
  11.  
    //LoginCard为子组件

至此,父组件的工作我们就完成了。来到子组件:

同样设置proptypes:

  1.  
    LoginCard.propTypes = {
  2.  
    history11:PropTypes.object,
  3.  
     
  4.  
    }

用componentDidMount获得父组件中传入的props,保存在parent_prop全局变量中。

var parent_prop=null
  1.  
    componentDidMount () {
  2.  
     
  3.  
    parent_prop=this.props
  4.  
    }

然后在需要页面跳转的地方写上,即可完成跳转。

parent_prop.history.push('path')

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhggfcfh
系列文章
更多 icon
同类精品
更多 icon
继续加载