反应未定义的属性

时间:2019-03-07 00:34:06

标签: reactjs

我正在构建一个小应用程序,但是遇到了问题。 我正在做的是,登录成功后,服务器会提供一个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组件将重定向到登录组件。

1 个答案:

答案 0 :(得分:0)

token: sessionStorage.getItem('secretKey')}||"" }}

如何使用||确保令牌未定义?