簡體   English   中英

具有條件的Java React Component有2個返回

[英]Javascript React Component with 2 returns depending on condition

我有一個反應組件,並有一個條件。

我想根據條件結果使用不同的return jsx。

這是我所擁有的,但僅返回最后一個。

這是代碼:

import React, { Component } from 'react';
import { Redirect } from 'react-router';

class Login extends Component {
  constructor(props) {
    super(props);
    this.state = {
      isLoggedIn: sessionStorage.getItem('isLoggedIn'),
      redirect: false,
    };
  }

  render() {

    if (!this.state.isLoggedIn) {

      return (
        <div>
          <h1>You are NOT logged in</h1>
        </div>
      );

    } else {

      return (
        <div>
          <h1>You ARE logged in</h1>);
        </div>

    }
  }
}

export default Login;

我怎樣才能解決這個問題?

假設在與isLoggedIn對應的sessionStorage中保存了false

您應該使用:

this.state = {
  isLoggedIn: sessionStorage.getItem('isLoggedIn') === 'true',
  redirect: false,
}

存儲在sessionStorage中的值是字符串。 因此, false將被存儲為'false' 因此, this.state.isLoggedIn始終為true。

您在錯誤的位置放了一個右括號。 應該在div之后,而不是h1 順便說一句,沒有必要第二次回報。

render() { return ( <div> <h1>You are { (!this.state.isLoggedIn) ? 'NOT' : '' } logged in</h1> </div> ); }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM