[英]Conditional rendering without JSX
是否可以使用React.createElement
如下所示的條件渲染 ?
render() {
const isLoggedIn = this.state.isLoggedIn;
let button;
if (isLoggedIn) {
button = <LogoutButton onClick={this.handleLogoutClick} />;
} else {
button = <LoginButton onClick={this.handleLoginClick} />;
}
return (
<div>
<Greeting isLoggedIn={isLoggedIn} />
{button}
</div>
);
}
我試圖這樣做:
render() {
const isLoggedIn = this.state.isLoggedIn;
let button;
if (isLoggedIn) {
button = React.createElement("LogoutButton" { "onClick": this.handleLogoutClick }, null);
} else {
button = React.createElement("LogoutButton" { "onClick": this.handleLoginClick }, null);
}
return (
React.createElement("div", null, {button});
);
}
但這是行不通的。 我該怎么辦?
更改
render() {
const isLoggedIn = this.state.isLoggedIn;
let button;
if (isLoggedIn) {
button = React.createElement("LogoutButton" { "onClick": this.handleLogoutClick }, null);
} else {
button = React.createElement("LogoutButton" { "onClick": this.handleLoginClick }, null);
}
return (
React.createElement("div", null, {button});
);
}
至
render() {
const isLoggedIn = this.state.isLoggedIn;
let button;
if (isLoggedIn) {
button = React.createElement(LogoutButton, { "onClick": this.handleLogoutClick }, null);
} else {
button = React.createElement(LogoutButton, { "onClick": this.handleLoginClick }, null);
}
return (
React.createElement("div", null, {button});
);
}
現在您的代碼應該可以正常工作,請參閱此頁面以備將來參考
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.