import React,{useState} from 'react'
export default function App() {
console.log('render')
const [n,setState] = useState(0);
return (
<div>
<p>值:{n}</p>
<button onClick={()=>{
setState(n+1)
setState(n+1)
setState(n=>n+1)
setState(n=>n+1)
}}>n+1</button>
</div>
)
}
每次点击按钮值会加三。因为事件会在内部所有程序执行完在改变值,所以前两次setState(n+1)每次的n值都为初始值,而setState(n=>n+1)用回调方式,是在事件结束后执行,此时n值不是初始值。