我正在构建一个小应用程序,但是遇到了问题。
我正在做的是,登录成功后,服务器会提供一个Web令牌,然后将令牌存储在sessionStorage
中,以检查是否可以访问每个组件。
但是,如果我使用以下代码,则该组件将调用未定义的错误。我认为以下代码是检查未定义属性的正确方法。
render() {
const {isLogin} = this.state;
if(isLogin){
return (
<Redirect to={{
pathname: '/home',
state: {token: sessionStorage.getItem('secretKey')}
}}
/>
)
}
--------------------------------------------
class Home extends React.Component{
render(){
if(!this.props.location.state.token){
return(
<Redirect to="/" />
)
}
return <h1>Home</h1>
}
}
让我再解释一次。
如果用户成功登录,该组件将重定向到“主页”组件,并且主页组件检查是否定义了this.props.location.state.token
。如果未定义,则Home组件将重定向到登录组件。
答案 0 :(得分:0)
token: sessionStorage.getItem('secretKey')}||"" }}
如何使用||
确保令牌未定义?