No exactamente así, pero hay soluciones. Hay una sección en los documentos de React sobre renderizado condicional que debería echarle un vistazo. Aquí tienes un ejemplo de lo que podrías hacer usando if-else en línea.
render() {
const isLoggedIn = this.state.isLoggedIn;
return (
<div>
{isLoggedIn ? (
<LogoutButton onClick={this.handleLogoutClick} />
) : (
<LoginButton onClick={this.handleLoginClick} />
)}
</div>
);
}
También puede manejarlo dentro de la función de renderizado, pero antes de devolver el jsx.
if (isLoggedIn) {
button = <LogoutButton onClick={this.handleLogoutClick} />;
} else {
button = <LoginButton onClick={this.handleLoginClick} />;
}
return (
<div>
<Greeting isLoggedIn={isLoggedIn} />
{button}
</div>
);
También vale la pena mencionar lo que ZekeDroid mencionó en los comentarios. Si solo está verificando una condición y no desea representar un fragmento de código en particular que no cumple, puede usar la extensión && operator
.
return (
<div>
<h1>Hello!</h1>
{unreadMessages.length > 0 &&
<h2>
You have {unreadMessages.length} unread messages.
</h2>
}
</div>
);