react-router中withRouter的作用

  withRouter是react-router的一个高阶组件,可获取history
  render时会把match, location和history传入props
用法1
import React,{Component} from 'react'
import {withRouter} from 'react-router-dom'
class App extends Component{
    console.log(this.props);  // {match: {…}, location: {…}, history: {…}…}
    render(){
      return (<div className='app'></div>)
    }
}
export default withRouter(App);  
用法2
import React,{Component} from 'react'
import {withRouter} from 'react-router-dom'
@withRouter
class App extends Component{
    console.log(this.props);  // {match: {…}, location: {…}, history: {…}…}
    render(){
      return (<div className='app'></div>)
    }
}
export default App; 
  • 注释
    @withRouter 属于装饰器语法需要额外配置
    执行:npm install babel-plugin-transform-decorators-legacy --save-dev
    具体实现请查看react @装饰器相关文档
    脚手架的在packag的babel中配置
{
    "plugins":[
        "transform-decorators-legacy"
    ]
}

非脚手架的在webpack.config.js的jsx语法babel-loader中配置

 plugins: [
            'transform-decorators-legacy'
]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容