美文网首页
withRouter用法

withRouter用法

作者: 回不去的那些时光 | 来源:发表于2020-02-23 17:27 被阅读0次

    高阶组件中的withRouter, 作用是将一个组件包裹进Route里面, 然后react-router的三个对象history, location, match就会被放进这个组件的props属性中.

    import React from 'react'
    import './nav.css'
    import {
        NavLink,
        withRouter
    } from "react-router-dom"
    
    class Nav extends React.Component{
        handleClick = () => {
            // Route 的 三个对象将会被放进来, 对象里面的方法可以被调用
            console.log(this.props);
        }
        render() {
            return (
                <div className={'nav'}>
                    <span className={'logo'} onClick={this.handleClick}>掘土社区</span>
                    <li><NavLink to="/" exact>首页</NavLink></li>
                    <li><NavLink to="/activities">动态</NavLink></li>
                    <li><NavLink to="/topic">话题</NavLink></li>
                    <li><NavLink to="/login">登录</NavLink></li>
                </div>
            );
        }
    }
    
    // 导出的是 withRouter(Nav) 函数执行
    export default withRouter(Nav)
    

    所以withRouter的作用就是, 如果我们某个东西不是一个Router, 但是我们要依靠它去跳转一个页面, 比如点击页面的logo, 返回首页, 这时候就可以使用withRouter来做.
    在这个例子中, 我将span使用withRouter作为一个可点击跳转的Link

    相关文章

      网友评论

          本文标题:withRouter用法

          本文链接:https://www.haomeiwen.com/subject/aytsqhtx.html