1import { useState } from 'react'; 2 3export default function Counter() { 4 const [age, setAge] = useState(42); 5 function increment() { 6 setAge(age + 1); 7 } 8 return ( 9 <> 10 <h1>Your age: {age}</h1> 11 <button onClick={() => { 12 increment(); 13 increment(); 14 increment(); 15 }}>+3</button> 16 </> 17 ); 18} 19
参考答案:
点击 +3 时,可能只更新为 43。
这是因为 setAge(age + 1)
即使多次调用,也不会立即更新组件状态,而是会进行合并,最终只触发一次重新渲染。
如果要实现调用三次就增加 3 ,可以将 increment
改为函数式更新:
1function increment() { 2 setAge(a => a + 1); // 函数式更新 3}
最近更新时间:2024-06-01