我的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?
答案 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访问该变量