目的:一般组件的this.props上没有路由组件有的history,match,location属性,因此需要使用withRouter将普通组件进行包裹

    1. //引入withRouter
    2. import {withRouter} from 'react-router-dom'
    3. //使用
    4. export default withRouter(index)
    1. import React, { Component } from 'react'
    2. import {withRouter} from 'react-router-dom'
    3. class index extends Component {
    4. back=()=>{
    5. this.props.history.goBack()
    6. }
    7. forward=()=>{
    8. this.props.history.goForward()
    9. }
    10. go=()=>{
    11. this.props.history.go(-2)
    12. }
    13. render() {
    14. return (
    15. <div>
    16. <h1>我是头部组件</h1>
    17. <button onClick={this.back}>返回</button>
    18. <button onClick={this.forward}>前进</button>
    19. <button onClick={this.go}>回退两步</button>
    20. </div>
    21. )
    22. }
    23. }
    24. export default withRouter(index)

    此时this.props上面存在路由组件的三个属性了
    image.png