[解決済み] ReactJSのJSXでネストされたif elseステートメントを行うには?
2023-06-25 05:44:37
質問
ReactJSのJSXでif else ifをネストさせることが可能かどうか知りたいのですが。
いろいろな方法を試しましたが、うまくいきません。
私が探しているのは
if (x) {
loading screen
} else {
if (y) {
possible title if we need it
}
main
}
これを試したのですが、レンダリングができません。 様々な方法を試してみました。 私はネストされたifを追加すると、それは常に壊れます。
{
this.state.loadingPage ? (
<div>loading page</div>
) : (
<div>
this.otherCondition && <div>title</div>
<div>body</div>
</div>
);
}
更新
私は結局、これをrenderContentに移動して関数を呼び出すという解決策を選択しました。 しかし、両方の回答が機能しました。 私は、それが単純なレンダリングのためであればインラインソリューションを使用し、より複雑なケースのためにrenderContentを使用するかもしれないと思います。
ありがとうございます。
どのように解決するのですか?
タイトルとボディをコンテナで囲む必要があります。それはdivでも構いません。もしあなたが フラグメント を使えば、domの要素が一つ減ります。
{ this.state.loadingPage
? <span className="sr-only">Loading... Registered Devices</span>
: <>
{this.state.someBoolean
? <div>some title</div>
: null
}
<div>body</div>
</>
}
読みにくいので、3項文の入れ子にはしないことをお勧めします。3 項を使うよりも "return early" とした方がエレガントな場合もあります。また
isBool && component
を使うこともできます。
renderContent() {
if (this.state.loadingPage) {
return <span className="sr-only">Loading... Registered Devices</span>;
}
return (
<>
{this.state.someBoolean && <div>some title</div>}
<div>body</div>
</>
);
}
render() {
return <div className="outer-wrapper">{ this.renderContent() }</div>;
}
構文に関する注意点
someBoolean && "stuff"
: 間違えて
someBoolean
が
0
または
NaN
と記述すると、そのNumberはDOMにレンダリングされます。したがって、もし"boolean"が
ファルシーナンバー
であるならば、より安全なのは
(someBoolean ? "stuff" : null)
.
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] React JSX内のループ
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み] なぜJavaScriptでは!{}[true]がtrueに評価されるのですか?
-
[解決済み] Javascript の parseInt() で先頭のゼロを削除する。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] React js 親コンポーネントから子コンポーネントの状態を変更する
-
[解決済み] Javascript 空の配列の削減
-
[解決済み] moment.jsでミュータビリティを回避するには?
-
[解決済み] jQueryで入力ファイルが空かどうかをチェックする方法
-
[解決済み] $.ajax実行中にローディングイメージを表示する
-
[解決済み] Chromeのwebkitインスペクタで「Unsafe JavaScript attempt to access frame with URL...」というエラーが継続的に発生する。
-
[解決済み] javascriptのキャンバスで画像をリサイズする (スムーズ)
-
[解決済み] これは純関数ですか?
-
[解決済み] 変異を伴わないオブジェクトからの値の削除
-
[解決済み] JavaScriptデータフォーマット/プリティプリンタ