Reactでは、いつstateは更新されるのですか?
Q&A
Closed
解決したいこと
ここに解決したい内容を記載してください。
例)
なぜ以下の二つの場合、sample1はconsole.logのタイミングで更新されておらず、
sample2では更新されているのですか?
import React, { useState } from 'react';
type sampleType = {
a:number,
b:number
}
function App() {
const [sample, setSample] =useState<sampleType>(
{a:1, b:0}
)
const clickButton1 = () => {
console.log(sample);
setSample({a:sample.a+=1, b:sample.b+=1})
console.log(sample)
}
const clickButton2 = () => {
console.log(sample);
setSample({a:2, b:2})
console.log(sample)
}
return (
<>
<button onClick={clickButton1}>ここを押して1</button>
<button onClick={clickButton2}>ここを押して2</button>
</>
);
}
export default App;
clickButton1のとき、ボタンを押した場合
(1,0)
(1,0)
clickButton2の場合
(1,0)
(2,1)
エラーの原因を探していたらここに行きつきました。
挙動の違いがいまいちよくわかりません。
お知恵をお貸しください