実現したいこと
onClick/onChangeイベントを呼び出すときにアロー関数でラップすべきか?否か
- Reactクリックイベント onClick={()=>handleClickTab(0)}
- React入力イベント onChange={handleChange}
前提
ボタン操作によるタブの切り替え表示、入力値を画面に反映する。
2つの機能を実装しています。
イベントハンドラの呼び出し方について、
アロー関数でラップする/しないの判断基準を教えてほしいです。
クリックイベントハンドラをアロー関数でラップして実行している
Javascript
1 2export default function App() { 3 // useStateでタブの状態を管理、初期値は0 4 const [activeTab, setActiveTab] = useState(0); 5 6 const handleClickTab = (index) => { 7 setActiveTab(index); 8 }; 9 10 return ( 11 <div className="tab" role="tab"> 12 <div className="tab-list" role="tablist"> 13 <button 14 onClick={() => handleClickTab(0)} 15 className={clsx({ active: activeTab === 0 })} 16 > 17 タブ1 18 </button> 19 {activeTab === 0 && ( 20 <div className="tab-panel">ここにタブ1のコンテンツが入ります。</div> 21 )} 22 </div> 23 ); 24} 25
入力イベントはonChangeでそのまま呼び出し(アロー関数でラップしない)
Javascript
1export function App() { 2 const [text, setText] = useState(""); 3 4 const handleChange = (e) => { 5 setText(e.target.value); 6 }; 7 8 return ( 9 <div> 10 <input 11 type="text" 12 value={text} 13 placeholder="テキストを入力" 14 onChange={handleChange} 15 /> 16 <p>入力された内容👇</p> 17 <div className="output"> 18 {text} 19 </div> 20 </div> 21 ); 22} 23

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2025/03/21 00:17