[解決済み] Reactのレンダー機能でif...else...文を使用することは可能ですか?
2022-04-21 12:39:02
質問
基本的に、私はリアクトコンポーネントを持っており、その
render()
関数本体は以下の通りです。(これは私の理想のもので、現在は動作しないということです)
render(){
return (
<div>
<Element1/>
<Element2/>
// note: code does not work here
if (this.props.hasImage) <MyImage />
else <OtherElement/>
</div>
)
}
解決方法は?
その通りではありませんが、回避策はあります。の中にセクションがあります。 Reactのドキュメント 条件付きレンダリングについて、一度ご覧になってみてください。ここでは、インラインのif-elseを使用してできることの例を示します。
render() {
const isLoggedIn = this.state.isLoggedIn;
return (
<div>
{isLoggedIn ? (
<LogoutButton onClick={this.handleLogoutClick} />
) : (
<LoginButton onClick={this.handleLoginClick} />
)}
</div>
);
}
また、render 関数の内部で、jsx を返す前に処理することもできます。
if (isLoggedIn) {
button = <LogoutButton onClick={this.handleLogoutClick} />;
} else {
button = <LoginButton onClick={this.handleLoginClick} />;
}
return (
<div>
<Greeting isLoggedIn={isLoggedIn} />
{button}
</div>
);
また、ZekeDroidがコメントで提起したことにも触れておく必要があります。ある条件をチェックするだけで、準拠しない特定のコードをレンダリングしたくない場合は
&& operator
.
return (
<div>
<h1>Hello!</h1>
{unreadMessages.length > 0 &&
<h2>
You have {unreadMessages.length} unread messages.
</h2>
}
</div>
);
関連
-
[解決済み】無効な設定オブジェクトです。APIスキーマと一致しない設定オブジェクトを使用してWebpackが初期化されました。
-
[解決済み】Reactコンポーネント内でswitchステートメントを使用するには?
-
[解決済み】コンポーネントの定義に表示名がない react/display-name
-
[解決済み】Reactを使用したMapBoxのCSSが欠落している件
-
[解決済み] react.jsでng-ifに相当するものは何ですか?
-
[解決済み] Reactの "after render "コード?
-
[解決済み] JSX.ElementとReactNodeとReactElementの使い分けは?
-
[解決済み】オプションのパスパラメータを持つReact Router
-
[解決済み】ReactのonClick関数はレンダリング時に発火する
-
[解決済み] How to avoid extra wrapping <div> in React?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】無効な設定オブジェクトです。APIスキーマと一致しない設定オブジェクトを使用してWebpackが初期化されました。
-
[解決済み] reactでonloadを使うには?
-
[解決済み] react-router-domを使用する際に「Function components cannot be given refs」を回避するにはどうすればよいですか?
-
[解決済み] material-ui-pickers KeyboardDatePicker をモーメントで使用するには?
-
[解決済み] React-Router 4 キャッチオールルート
-
[解決済み] react.jsでng-ifに相当するものは何ですか?
-
[解決済み] axios-mock-adapter onGet mock data not effective.
-
[解決済み] Cross-envでyarnの実行時にenv変数が変更されない。
-
[解決済み] AxiosにCORSの問題が発生
-
[解決済み] react-router-domを使用する際に「Function components cannot be given refs」を回避する方法は?