gpt4 book ai didi

javascript - 从 useReducer Hook 返回的状态是 "deep copy"还是 reducer 输出的引用?

转载 作者:行者123 更新时间:2023-12-05 08:11:29 25 4
gpt4 key购买 nike

我目前正在使用 Context API 结合 useReducer Hook 在 React 中实现全局状态处理。

我对可变性有两个担忧:

  • 在我的 reducer 中更新状态时,我是否需要使用 Lodash 的 cloneDeep 函数来切断进入我的 reducer 的对象与存储状态之间的引用?
  • 是否有可能通过在 reducer 之外手动改变它来破坏全局状态,或者它会表现得像“正常的 React 状态”,因为手动改变会在下一个更新周期被覆盖?

供引用:docs

最佳答案

useStateuseReducer 都会为您提供您保存的确切值引用(通过调用 someSetter(newValue),或返回一个值来自 reducer 函数)。

无论哪种情况,手动更改值都是错误的。特别是,如果您返回与上次相同的引用,它们都将退出更新,因此您应该始终不可变地更新值。

关于javascript - 从 useReducer Hook 返回的状态是 "deep copy"还是 reducer 输出的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56848745/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com