条件渲染不显示 - 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>
);
}
我有一个注销按钮,我只想在用户登录时显示它。
我为此创建了一个函数,并将该函数包含在 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>
);
}