我正在制作代码编辑器,当用户从下拉选项中更改语言时,默认语言代码应该更改。
setCode 状态根本没有在屏幕上更新,但是当我检查日志时,它显示了先前状态的代码。
为什么 React 不立即更新状态 状态更新排队等待下一次渲染。这样做是为了避免在组件中有多个状态时每次状态更改时多次重新渲染。一旦所有状态都更新,就会重新渲染。
**但是如果你想在下次重新渲染之前对值执行一些操作怎么办** 您可以通过将函数传递给 setState 来强制更新状态。所以代替这个:
setLanguage(s1)
试试这个:
setLanguage(l => l = s1)
您可以在官方 React 文档中阅读更多内容这里