Как отправить переменную вместе с перенаправлением в Reactjs?

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

<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 с компонентом перенаправления?

Как вы отправляете местоположение.

Sameer Reza Khan 24.05.2019 12:30
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
1
589
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете передать данные реквизита с помощью 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

Думаю так и должно быть state: { from: props.location, auth: auth }

Varun 24.05.2019 12:51

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

Другие вопросы по теме