問題一覧に戻る
初級状態管理
問題27: 前のstateに基づく更新

関数形式のsetStateを使って、確実な状態更新を行います。複数の更新を連続して行う場合に必要なパターンです。

import React, { useState } from 'react';

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

const add3Times = () => {
// 間違った方法(値が1しか増えない)
// setCount(count + 1);
// setCount(count + 1);
// setCount(count + 1);

// 正しい方法(値が3増える)
setCount( => + 1);
setCount( => + 1);
setCount( => + 1);
};

return (
<div>
<p>カウント: {count}</p>
<button onClick={add3Times}>+3</button>
</div>
);
}

export default Counter;