-
新しい配列を作成して状態を更新する方法:
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> ); }
-
コールバック関数を使用して状態を更新する方法:
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> ); }
-
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で配列の状態を更新するためのいくつかの一般的な手法です。どの方法を選ぶかは、プロジェクトの要件や個人の好みによって異なります。