Não exatamente assim, mas existem soluções alternativas. Há uma seção na documentação do React sobre renderização condicional que você deve dar uma olhada. Aqui está um exemplo do que você poderia fazer usando if-else inline.
render() {
const isLoggedIn = this.state.isLoggedIn;
return (
<div>
{isLoggedIn ? (
<LogoutButton onClick={this.handleLogoutClick} />
) : (
<LoginButton onClick={this.handleLoginClick} />
)}
</div>
);
}
Você também pode lidar com isso dentro da função render, mas antes de retornar o jsx.
if (isLoggedIn) {
button = <LogoutButton onClick={this.handleLogoutClick} />;
} else {
button = <LoginButton onClick={this.handleLoginClick} />;
}
return (
<div>
<Greeting isLoggedIn={isLoggedIn} />
{button}
</div>
);
Também vale a pena mencionar o que ZekeDroid trouxe nos comentários. Se você está apenas verificando uma condição e não deseja renderizar uma parte específica do código que não está em conformidade, você pode usar o && operator.
return (
<div>
<h1>Hello!</h1>
{unreadMessages.length > 0 &&
<h2>
You have {unreadMessages.length} unread messages.
</h2>
}
</div>
);