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>
);
}
出力:
上記のスニペットでは、useState()
フックを使用して状態変数 showComponent
を true
に初期化しました。 また、別の変数 setShowComponent
を作成します。これは、状態変数を更新する関数への参照を格納します。
JSX では、showComponent
変数を評価し、true の場合は <Box />
コンポーネントをレンダリングする JavaScript 式を記述しました。 そうでない場合は、空の文字列をレンダリングします。
JSX 内で JavaScript 式を記述するには、それらを中括弧 ({}
) で囲む必要があります。
onClick()
イベント ハンドラーを設定して、誰かがボタンをクリックするたびに showComponent
状態変数の値を更新します。 状態変数の値を現在の値の反対に設定します。
現時点でtrue
の場合、ボックスがレンダリングされます。 ボタンをクリックすると false
に設定され、ボックスはレンダリングされなくなります。
<Button>
DOM 要素の位置がどのように変化するかに注目してください。 これは、showComponent
変数の値に基づいて、<Box>
コンポーネント (高さと幅が固定された div) がレンダリングされる (またはレンダリングされない) ためです。
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