iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 27
0
自我挑戰組

請你當我的好朋友吧!ReactJS!系列 第 27

【DAY 27】React-router,其它很有用的組件(下)

【前言】
  終於要來到倒數幾篇了!!!有沒有對於這些更熟悉了呢?希望有幫到大家!
【正文】
  今天來介紹<Redirect>吧!

<Redirect>:用來轉址,會覆蓋目前的history stack

  1. to:string / object,要轉址到的目標路徑可以放單純的路徑字串,或是pathname、search、state的路徑物件
  2. push:boolean,若true,不會改寫路徑,而是直接在目前的history增加新的entry
  3. from:string,從哪個路徑轉址
<Switch>
  <Redirect from='/old-path' to='/new-path'/>
  <Route path='/new-path' component={Place}/>
</Switch>

withRouter:一個HOC,可以把match、location、history當成props傳入component中

import React from "react";
import PropTypes from "prop-types";
import { withRouter } from "react-router";

class ShowTheLocation extends React.Component {
  // 將match、location、history當成props傳入ShowTheLocation組件,可以讓原本沒有接收props或是state的component能夠因為location的改變而render
  static propTypes = {
    match: PropTypes.object.isRequired,
    location: PropTypes.object.isRequired,
    history: PropTypes.object.isRequired
  };

  render() {
    const { match, location, history } = this.props;

    return <div>You are now at {location.pathname}</div>;
  }
}

const ShowTheLocationWithRouter = withRouter(ShowTheLocation);
export default ShowTheLocationWithRouter;

上一篇
【DAY 26】React-router,其它很有用的組件(上)
下一篇
【DAY 28】用react-loadable與react-router做code splitting吧
系列文
請你當我的好朋友吧!ReactJS!30

尚未有邦友留言

立即登入留言