条件渲染不显示 - ReactJS

Conditional rendering not displaying - ReactJS

我有一个注销按钮,我只想在用户登录时显示它。

我为此创建了一个函数,并将该函数包含在 React 的 return 部分,但它不起作用。

这是函数:

const ifloggedin = () => {
    if (!localStorage.hasOwnProperty('token')) {
      return null
} else {
return <li><a href="#contact" className="Contact" onClick={logout} to={"/"}>Log Out</a></li>
}
  }

这就是我在 return 中尝试渲染它的方式:

        <div className="content">
          <li><a href="#hiw" className="Hiw" to={"/about"}>HOW IT WORKS</a></li>
          <li><a href="#pricing" className="Price" to={"/pricing"}>PRICING</a></li>
          <li><Link className="Faq" to={"/Faq"}>FAQ</Link></li>
          <li><a href="#contact" className="Contact" to={"/contact"}>CONTACT</a></li>
          {ifloggedin}
        </div>

ifloggedin是一个函数所以你需要调用它。

 <div className="content">
          <li><a href="#hiw" className="Hiw" to={"/about"}>HOW IT WORKS</a></li>
          <li><a href="#pricing" className="Price" to={"/pricing"}>PRICING</a></li>
          <li><Link className="Faq" to={"/Faq"}>FAQ</Link></li>
          <li><a href="#contact" className="Contact" to={"/contact"}>CONTACT</a></li>
          {ifloggedin()}
</div>

你必须调用 ifloggedin 作为 ifloggedin(),因为它是一个箭头函数。 但是在您的情况下,您将它用于条件渲染,因此无需为此编写箭头函数。

你可以把它写成普通函数,然后像 ifloggedin() 一样使用

 ifloggedin() {
if (!localStorage.hasOwnProperty('token')) {
  return null;
} else {
  return (
    <li>
      <a href="#contact" className="Contact" onClick={logout} to={'/'}>
        Log Out
      </a>
    </li>
  );
}