我有一个使用上下文API和许多Hooks的现代React应用程序,我使用上下文来存储应用程序的全局值。这些值或上下文本身不应直接重新渲染其他组件。上下文本身具有自己的getter/setter形式,即UseState钩子函数,消费组件从中调用以使用它。如果任何组件依赖于上下文数据,则在此组件本身中创建单独的状态,然后正确处理该状态。
在我的情况下,我的具体问题是直接改变我存储在上下文中的对象有多糟糕?
例如,从任意随机消费者组件更改上下文对象如下:
在我的情况下,我的具体问题是直接改变我存储在上下文中的对象有多糟糕?
例如,从任意随机消费者组件更改上下文对象如下:
const handlerFunction = () => {contextObjData.value = "Something"};
与其“预期”的react方式相反:
const handlerFunction = () => {setContextObjData(...contextObjData, value: "Something")};
对我来说,每次保存整个对象似乎有些过度,但也许有人可以给我另一种视角和一些见解。
顺便问一下,这两者之间有什么区别,我有点新手:
const handlerFunction = () => {setContextObjData(...contextObjData, value: "Something")};
const handlerFunction = () => {setContextObjData(prevState => ({...contextObjData, value: "Something"}));