2017-07-07 106 views
0

我有一個私人路由設置,以密碼頁面開始。在用戶輸入密碼後,它會將它們轉換爲術語/術語。當他們接受條款時,會有鏈接將他們帶到家中/家中。反應私人路由重定向

現在我們假設我給某人發送了一個到/ page1的鏈接。它到達/(登錄),然後轉到條款,但需要鏈接到/ page1。但是它會去/ home。有沒有一種程序化的方式來跟蹤最初請求哪個網址,並將其放入條款頁面上的鏈接,而不是/ home?

這裏是我的私人路線

import { Route, Redirect } from 'react-router-dom'; 
import React from 'react'; 

const PrivateRoute = ({ component: Component, isLoggedIn, ...rest }) => (
    <Route {...rest} render={props => (
    isLoggedIn ? (
     <div> 
     <Component {...props}/> 
     </div> 
    ) : (
     <Redirect to={{ 
     pathname: '/', 
     state: { from: props.location } 
     }}/> 
    ) 
)}/> 
) 

export default PrivateRoute; 

代碼和這裏是代碼/條款

import React, { Component } from 'react'; 
import { Link } from 'react-router-dom'; 

class Terms extends Component { 

    render() { 
    return (
     <div className="wrapper"> 
     <div className="login_content"> 

      <div className="button"><Link to="/home">I Agree</Link></div> 
     </div> 
     </div> 
    ); 
    } 
} 

export default Terms; 

回答

0

我想你,你把你所有的路由信息​​的索引文件。也許你有這樣的定義你的路線。

<PrivateRoute path="/mypath" component={MyComponent} /> 

現在在您定義了您的PrivateRoute的組件中,只需添加路徑屬性即可。

const PrivateRoute = ({ path, component: Component, isLoggedIn, ...rest }) => (
    if (path === '/mypath') { 
     // Do something 
    } 
    ... 
) 

That shoul help you。