Как я могу перенаправить через реагировать маршрутизатор v4 - PullRequest
0 голосов
/ 29 января 2019

На основании isLoggedIn мне нужно перенаправить на разные компоненты.

Я получаю страницу входа, но не могу отобразить домашнюю страницу.

{this.state.isLoggedIn ?
    (
      <Route
        path='/home'
        render={() => <HomePage  onLogout={this.onLogout} />}
      />
    )
    :
    (
      <Route exact path='/' component={() => <LoginPage onLogin={this.onLogin} />}/>
    )
}

Ответы [ 3 ]

0 голосов
/ 29 января 2019

Вы можете перенаправить, отобразив <Redirect>, чтобы перейти к новому местоположению.Новое местоположение переопределит текущее местоположение в стеке истории, как это делают перенаправления на стороне сервера (HTTP 3xx).

import { Route, Redirect } from 'react-router'

<Route exact path="/" render={() => (
  loggedIn ? (
    <Redirect to="/dashboard"/>
  ) : (
    <PublicHomePage/>
  )
)}/>

Для пропуска проповеди по перенаправлению

<Redirect to={{
    pathname: '/dashboard',
    state: { id: '123' }
}} />

Тогда вы можетедоступ к реквизиту через this.props.location.state.id

0 голосов
/ 29 января 2019

Использование Перенаправление

От родительского компонента передайте this.state.isLoggedIn в качестве реквизита компоненту LoginPage и HomePage.

в компоненте LoginPage

render(){
  if(this.props.isLoggedIn){
   return <Redirect to='/home' />
  }

  return ( your login page )
}

Сделайте то же самое в вашем компоненте HomePage с путем перенаправления '/'.

0 голосов
/ 29 января 2019

Вы можете использовать this.props.history.push(myRoutes) и отправить маршрут в качестве аргумента.Он перенаправит вас на нужный маршрут.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...