トッカンソフトウェア

React コンテキスト

今回はコンテキストを使用します。
はじめにの続きからやるので環境構築は「はじめに」を見てください。

コンポーネントでは、引数で値をやり取りしましたが、コンテキストではコンテキストに入れて値をやり取りします。


サンプル

src\CountContext.jsx


import { createContext } from 'react';

export const CountContext = createContext(1);

createContextでコンテキストを作成します。

src\App.jsx


import { useState } from 'react'
import App2 from './App2'
import { CountContext } from './CountContext.jsx'

function App() {
  const [count, setCount] = useState(0)

  function execute() {
    setCount((preVal) => preVal + 1);
  }
  return (
    <CountContext value={count}>
      <h1>Parent</h1>
      <button onClick={() => setCount(0)}>
        reset
      </button>
      <div>{count}</div>
      <App2 exec={execute}>
        +button
      </App2>
    </CountContext>
  )
}

export default App

<CountContext value={count}>でCountContextにcountをセットします。

src\App2.jsx


import { useContext } from 'react';
import { CountContext } from './CountContext.jsx'

function App2({ exec, children }) {

  const count = useContext(CountContext);

  return (
    <>
      <h2>child</h2>
      <button onClick={() => exec()}>
        {children}
      </button>
      <div>{count}</div>
    </>
  )
}

export default App2

useContext(CountContext)でCountContextに入っているコンテキストを取得します。

実行結果




ページのトップへ戻る