javascript - 我们在反应钩子中还需要功能性的 setState 方式吗?
问题描述
const [count, setCount] = useState(0);
const handleClick = () =>
setCount(prevCount => {
return prevCount + 1;
});
const [count, setCount] = useState(0);
const handleClick = () => setCount(count + 1);
来自基于类的组件背景,它成为我们使用函数式的习惯setState
。我想知道我们是否还需要在功能挂钩中依赖 prevState?还是当前状态始终是“可信赖的”和最“更新的”?
解决方案
是的,行为是相似的。
React 正在批处理更新调用。写作时:
const handleClick = () => setCount(count + 1)
handleClick()
handleClick()
handleClick()
count
in 状态将为1
写作时:
const handleClick = () =>
setCount(prevCount => {
return prevCount + 1;
});
handleClick()
handleClick()
handleClick()
count
状态将是3
推荐阅读
- python - df_data 未定义,不确定原因
- android - SVG 到 VectorDrawable - 黑色区域
- svg - 如何在 SVG (svg.js) 中的现有元素上居中?
- python - 根据日期合并数据框
- python - 在 or-tools 中建模方差-协方差矩阵计算
- database - 如何将 Firestore 数据库中的文本显示到我的颤振应用程序中?
- python - 在 Apache Flink 中使用 Python 进行分析
- unit-testing - 开玩笑模拟 twilio - 如何?
- ajax - 使用上下文过滤器在 Drupal 8 中 ajax 加载视图的理想方法
- php - 警告:oci_connect(): OCIEnvNlsCreate() 失败