Как отправить переменную вместе с Redirect в Reactjs? - PullRequest
0 голосов
/ 24 мая 2019

У меня в приложении реагирует следующее:

<PrivateRoute 
  path="/profile" 
  component={ Profile }
  authenticated={ this.state.authenticated }

/>

<PrivateRoute/> в основном только ниже:

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

Как вы можете видеть в приведенном выше коде, есть переменная auth, как я могу отправить эту переменную сейчас, я хотел бы отправить эту переменную alog с <Redirect />, который в основном загружает компонент <Login />, но как именно я могу отправить переменную auth alog с компонентом Redirect?

Ответы [ 2 ]

2 голосов
/ 24 мая 2019

Вы можете передавать данные реквизита с помощью Redirect следующим образом:

const PrivateRoute = ({ component : Component , authenticated : auth , ...rest }) => {
return (
<Route {...rest} render={ (props) => {
  return (
    auth ? <Component {...props} /> 
    : <Redirect 
        to={{
            pathname : '/login',
            state : {
                from : {auth : auth}
            }
        }} />
  )
} } />

)}

и вот как вы можете получить к ним доступ:

this.props.location.state.auth
0 голосов
/ 25 мая 2019

Используйте this.props.history.push и получите доступ к этой переменной с помощью this.props.location

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