如何在Reactjs中将变量与重定向一起发送?

时间:2019-05-24 10:24:17

标签: reactjs react-router

我的React应用程序中包含以下内容:

<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变量,我该如何将该变量发送到现在,我想使用<Redirect />将该变量发送给alog,该变量基本上加载了{{ 1}}组件,但是我该如何使用重定向组件发送auth变量alog?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

使用this.props.history.push并通过this.props.location访问该变量