JSX で条件に三項演算子を使用する
このステップでは、JSX 内で直接インラインの if-else ロジックに条件付き(三項)演算子 (? :) を使用する方法を学びます。これは、レンダリングする 2 つの異なる UI 要素を切り替えるための簡潔な方法です。
まず、プロジェクトディレクトリに移動しましょう。すべてのコマンドはこのディレクトリから実行する必要があります。
cd ~/project/my-app
次に、プロジェクトの依存関係をインストールする必要があります。
npm install
それでは、メインアプリケーションコンポーネントを変更しましょう。左側のファイルエクスプローラーで src/App.jsx ファイルを開きます。ユーザーがログインしているかどうかに応じて異なるメッセージを表示する Greeting コンポーネントを作成します。
src/App.jsx の内容全体を以下のコードに置き換えてください。
function Greeting(props) {
const isLoggedIn = props.isLoggedIn;
return (
<div>{isLoggedIn ? <h1>Welcome back!</h1> : <h1>Please sign up.</h1>}</div>
);
}
function App() {
return (
<div>
{/* isLoggedIn を false に変更して、別のメッセージを表示してみてください! */}
<Greeting isLoggedIn={true} />
</div>
);
}
export default App;
Greeting コンポーネントでは、式 {isLoggedIn ? <h1>Welcome back!</h1> : <h1>Please sign up.</h1>} が isLoggedIn プロップの値を確認します。true の場合は、「Welcome back!」とレンダリングします。それ以外の場合は、「Please sign up.」とレンダリングします。
それでは、開発サーバーを起動して、コンポーネントが動作しているのを確認しましょう。
npm run dev -- --host 0.0.0.0 --port 8080
サーバーが起動したら、画面上部の Web 8080 タブを開きます。「Welcome back!」というメッセージが表示されるはずです。src/App.jsx で isLoggedIn={true} を isLoggedIn={false} に変更し、ファイルを保存して、ブラウザでコンテンツが自動的に更新されるのを確認してみてください。