Nicht genau so, aber es gibt Problemumgehungen. In den Dokumenten von React gibt es einen Abschnitt zum bedingten Rendern, den Sie sich ansehen sollten. Hier ist ein Beispiel dafür, was Sie mit Inline-if-else tun können.
render() {
const isLoggedIn = this.state.isLoggedIn;
return (
<div>
{isLoggedIn ? (
<LogoutButton onClick={this.handleLogoutClick} />
) : (
<LoginButton onClick={this.handleLoginClick} />
)}
</div>
);
}
Sie können sich auch innerhalb der Renderfunktion damit befassen, bevor Sie den jsx zurückgeben.
if (isLoggedIn) {
button = <LogoutButton onClick={this.handleLogoutClick} />;
} else {
button = <LoginButton onClick={this.handleLoginClick} />;
}
return (
<div>
<Greeting isLoggedIn={isLoggedIn} />
{button}
</div>
);
Erwähnenswert ist auch, was ZekeDroid in den Kommentaren angesprochen hat. Wenn Sie nur nach einer Bedingung suchen und keinen bestimmten Code rendern möchten, der nicht den Anforderungen entspricht, können Sie die verwenden && operator.
return (
<div>
<h1>Hello!</h1>
{unreadMessages.length > 0 &&
<h2>
You have {unreadMessages.length} unread messages.
</h2>
}
</div>
);