React Hooks の公式DocsのuseReducerの項目で、遅延初期化という部分がございます。
しかし、該当の公式コードを実行してもエラーになる箇所がございます。
そのコードがこちら
JavaScript
1function init(initialCount) { 2 return {count: initialCount}; 3} 4 5function reducer(state, action) { 6 switch (action.type) { 7 case 'increment': 8 return {count: state.count + 1}; 9 case 'decrement': 10 return {count: state.count - 1}; 11 case 'reset': 12 return init(action.payload); 13 default: 14 throw new Error(); 15 } 16} 17 18function Counter({initialCount}) { 19 const [state, dispatch] = useReducer(reducer, initialCount, init); 20 return ( 21 <> 22 Count: {state.count} 23 <button 24 onClick={() => dispatch({type: 'reset', payload: initialCount})}> 25 Reset 26 </button> 27 <button onClick={() => dispatch({type: 'decrement'})}>-</button> 28 <button onClick={() => dispatch({type: 'increment'})}>+</button> 29 </> 30 ); 31} 32
JavaScript
1const [state, dispatch] = useReducer(reducer, initialCount, init);
第二引数に整数ではなくinitialCountを入れるのは何故ですか?
第二引数にinitialCountを入れると、NaNとなると思いました。
こちらの第二引数には、別途計算された値が入るんだよということを言いたいのであれば分かります。
回答1件
あなたの回答
tips
プレビュー