我有一个注销按钮,仅在用户登录时才显示。
我为此目的创建了一个函数,并将该函数包含在react的返回部分中,但是它不起作用。
这是功能:
const ifloggedin = () => {
if (!localStorage.hasOwnProperty('token')) {
return null
} else {
return <li><a href="#contact" className="Contact" onClick={logout} to={"/"}>Log Out</a></li>
}
}
这是我尝试呈现的方式:
<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>
答案 0 :(得分:8)
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>
答案 1 :(得分:2)
您必须将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>
);
}