美文网首页react
React-Router 4.0 withRouter作用

React-Router 4.0 withRouter作用

作者: _花 | 来源:发表于2018-10-24 15:09 被阅读3539次

    1.目的就是让被修饰的组件可以从属性中获取history,location,match

    路由组件可以直接获取这些属性,而非路由组件就必须通过withRouter修饰后才能获取这些属性了,比如

    <Route path='/' component={App}/>
    

    App组件就可以直接获取路由中这些属性了,但是,如果App组件中如果有一个子组件Foo,那么Foo就不能直接获取路由中的属性了,必须通过withRouter修饰后才能获取到。

    2.withRouter是专门用来处理数据更新问题的。

    在使用一些redux的的connect()或者mobx的inject()的组件中,如果依赖于路由的更新要重新渲染,会出现路由更新了但是组件没有重新渲染的情况。这是因为redux和mobx的这些连接方法会修改组件的shouldComponentUpdate

    在使用withRouter解决更新问题的时候,一定要保证withRouter在最外层,比如withRouter(connect(Component))

    相关文章

      网友评论

        本文标题:React-Router 4.0 withRouter作用

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