Reactで配列の状態を更新する方法


  1. 新しい配列を作成して状態を更新する方法:

    import React, { useState } from 'react';
    function ExampleComponent() {
     const [arrayState, setArrayState] = useState([]);
     const updateArray = () => {
       const newArray = [...arrayState]; // 現在の配列のコピーを作成
       newArray.push('新しい要素'); // 新しい要素を追加
       setArrayState(newArray); // 状態を更新
     };
     return (
       <div>
         <button onClick={updateArray}>配列を更新</button>
         <ul>
           {arrayState.map((item, index) => (
             <li key={index}>{item}</li>
           ))}
         </ul>
       </div>
     );
    }
  2. コールバック関数を使用して状態を更新する方法:

    import React, { useState } from 'react';
    function ExampleComponent() {
     const [arrayState, setArrayState] = useState([]);
     const updateArray = () => {
       setArrayState(prevState => [...prevState, '新しい要素']); // コールバック関数を使用して状態を更新
     };
     return (
       <div>
         <button onClick={updateArray}>配列を更新</button>
         <ul>
           {arrayState.map((item, index) => (
             <li key={index}>{item}</li>
           ))}
         </ul>
       </div>
     );
    }
  3. useReducerフックを使用して状態を更新する方法:

    import React, { useReducer } from 'react';
    function reducer(state, action) {
     switch (action.type) {
       case 'add':
         return [...state, action.payload];
       default:
         return state;
     }
    }
    function ExampleComponent() {
     const [arrayState, dispatch] = useReducer(reducer, []);
     const updateArray = () => {
       dispatch({ type: 'add', payload: '新しい要素' }); // dispatchを使用して状態を更新
     };
     return (
       <div>
         <button onClick={updateArray}>配列を更新</button>
         <ul>
           {arrayState.map((item, index) => (
             <li key={index}>{item}</li>
           ))}
         </ul>
       </div>
     );
    }

これらの方法は、Reactで配列の状態を更新するためのいくつかの一般的な手法です。どの方法を選ぶかは、プロジェクトの要件や個人の好みによって異なります。