我使用的是React Router,他们的私有路由示例是:
const fakeAuth = {
isAuthenticated: false,
authenticate(cb) {
this.isAuthenticated = true
setTimeout(cb, 100) // fake async
},
signout(cb) {
this.isAuthenticated = false
setTimeout(cb, 100)
}
}
const PrivateRoute = ({ component: Component, ...rest }) => (
<Route {...rest} render={props => (
fakeAuth.isAuthenticated ? (
<Component {...props}/>
) : (
<Redirect to={{
pathname: '/login',
state: { from: props.location }
}}/>
)
)}/>
)
我的问题是:如何在呈现组件之前调用端点,以验证存储在会话存储中的令牌是否仍然有效?因此,只有当我的会话存储空间中没有任何内容(我可以轻松地执行此操作),或者会话存储中的访问令牌不再有效时,我的PrivateRoute
才会redirect
({1}}这是我调用我的API以查看它是否仍然有效的地方。
答案 0 :(得分:-1)
为什么不使用this.setState?它的第二个参数允许你进行回调。您可以在其中重定向用户