Không hẳn như vậy, nhưng có những cách giải quyết. Có một phần trong tài liệu của React về kết xuất có điều kiện mà bạn nên xem qua. Đây là một ví dụ về những gì bạn có thể làm bằng cách sử dụng if-else nội tuyến.
render() {
const isLoggedIn = this.state.isLoggedIn;
return (
<div>
{isLoggedIn ? (
<LogoutButton onClick={this.handleLogoutClick} />
) : (
<LoginButton onClick={this.handleLoginClick} />
)}
</div>
);
}
Bạn cũng có thể xử lý nó bên trong hàm kết xuất, nhưng trước khi trả về jsx.
if (isLoggedIn) {
button = <LogoutButton onClick={this.handleLogoutClick} />;
} else {
button = <LoginButton onClick={this.handleLoginClick} />;
}
return (
<div>
<Greeting isLoggedIn={isLoggedIn} />
{button}
</div>
);
Cũng đáng nói đến những gì ZekeDroid đưa ra trong các bình luận. Nếu bạn chỉ đang kiểm tra một điều kiện và không muốn hiển thị một đoạn mã cụ thể không tuân thủ, bạn có thể sử dụng && operator
.
return (
<div>
<h1>Hello!</h1>
{unreadMessages.length > 0 &&
<h2>
You have {unreadMessages.length} unread messages.
</h2>
}
</div>
);