【发布时间】:2018-09-08 03:37:18
【问题描述】:
您好,我正在尝试在渲染中创建 HTML,其中某些部分取决于我放入 IF ELSE 的条件。但是 if 语句被视为纯文本并且没有得到预期的结果。谁能告诉我哪里错了?
render(){
console.log('email'+this.state.email);
var html = <Navbar style={styles.menu} color="faded" light expand="md">
<NavbarBrand style={styles.image} href="/"><img src="../../images/op-logo.jpg"/></NavbarBrand>
<NavbarToggler onClick={this.toggle} />
<Collapse isOpen={this.state.isOpen} navbar>
<Nav className="ml-auto" navbar>
<NavItem>
<NavLink href="/tournaments">Tournaments</NavLink>
</NavItem>
<NavItem>
<NavLink href="/players-ladder">Ladder</NavLink>
</NavItem>
if (this.state.email!='') {
('Welcome' + this.state.email+<NavItem><NavLink href="/logout">Logout</NavLink></NavItem>)
} else {
(<NavItem><NavLink href="/login">Login/Signup</NavLink></NavItem>)
}
</Nav>
</Collapse>
</Navbar>
return (
<div>
{html}
</div>);
}
【问题讨论】:
-
这是因为您试图在 JSX 中编写条件。将其移出并将条件 html 呈现为“正常”。
标签: reactjs