![]() |
1
1
你应该记住
或者,您可以在React ref中缓存所有状态值,并通过回调中的ref访问它们。 例子:
|
![]() |
2
1
正如Drew Reese指出的,这是典型的 陈旧状态 使用JavaScript闭包时,React中的问题。 使用效果 将一个函数作为参数,在该函数中使用另一个函数 增加列表项 这是在 反应组分 和使用 反应状态 .这种情况下发生的是 增加列表项 在以下情况下被记忆 使用效果 执行时,它就像一张静态的图片。不幸地 增加列表项 不是一个纯粹的函数,它依赖于React状态,所以它在React生命周期中会发生变化 使用效果 它的回调版本将保持静态。这是因为你初始化了 使用效果 将空数组用作第二个参数[]的钩子。 这就是为什么我们要引入 依赖项数组 ,数组中的值决定何时必须重新计算钩子中的回调。有一个非常重要的问题 掉毛 强制您将回调的所有依赖项放入deps数组中的规则: @反应钩/详尽的DEP 避免许多细微的错误和不当行为。 这应该是在您的案例中使用React钩子的正确方法,以提高性能,避免错误和对Reender进行不必要的计算:
|
![]() |
John · 如何确定Javascript自引用循环是否完成[重复] 2 年前 |
![]() |
Bonhart · 有没有更好的方法按名称查找数组中的特定对象? 2 年前 |
![]() |
ubermo · 如何在React本机自定义组件中使用状态? 2 年前 |
![]() |
Audrey K · 有没有办法降级React Native? 2 年前 |
![]() |
Tedi · 如何将单个数据从子组件传递到父组件? 2 年前 |