React の onClick イベント ハンドラを介してコンポーネントをレンダリングする

Irakli Tchigladze 2024年2月15日
React の onClick イベント ハンドラを介してコンポーネントをレンダリングする

この記事では、ユーザーがボタンをクリックするたびにコンポーネントを動的にレンダリングするように React コンポーネントを設定する方法について説明します。

React の onClick イベント ハンドラを介してコンポーネントをレンダリングする

React で Web アプリケーションを構築する場合、ユーザーの入力に基づいてコンポーネントを条件付きでレンダリングしたい場合があります。 これは、ユーザーの入力を状態変数に格納することで可能になります。

Functional React コンポーネントは JSX コードを返します。これにより、状態変数の値に基づいてコンポーネントをレンダリングする (またはレンダリングしない) ことができます。

コンポーネントを条件付きでレンダリングするには、これら 2つの機能と JavaScript 三項演算子を使用できます。

コード:

export default function App() {
  const [showComponent, setShowComponent] = useState(true);
  return (
    <div className="App">
      {showComponent ? <Box /> : ""}
      <button onClick={() => setShowComponent(!showComponent)}>
        Hide and show Box
      </button>
    </div>
  );
}

出力:

react render component onclick

ライブデモ

上記のスニペットでは、useState() フックを使用して状態変数 showComponenttrue に初期化しました。 また、別の変数 setShowComponent を作成します。これは、状態変数を更新する関数への参照を格納します。

JSX では、showComponent 変数を評価し、true の場合は <Box /> コンポーネントをレンダリングする JavaScript 式を記述しました。 そうでない場合は、空の文字列をレンダリングします。

JSX 内で JavaScript 式を記述するには、それらを中括弧 ({}) で囲む必要があります。

onClick() イベント ハンドラーを設定して、誰かがボタンをクリックするたびに showComponent 状態変数の値を更新します。 状態変数の値を現在の値の反対に設定します。

現時点でtrueの場合、ボックスがレンダリングされます。 ボタンをクリックすると false に設定され、ボックスはレンダリングされなくなります。

<Button> DOM 要素の位置がどのように変化するかに注目してください。 これは、showComponent 変数の値に基づいて、<Box> コンポーネント (高さと幅が固定された div) がレンダリングされる (またはレンダリングされない) ためです。

Irakli Tchigladze avatar Irakli Tchigladze avatar

Irakli is a writer who loves computers and helping people solve their technical problems. He lives in Georgia and enjoys spending time with animals.

LinkedIn

関連記事 - React Event