在我的应用程序中,我有一个对象数组和一个保存当前选定对象的状态。该对象不是深层嵌套,仅包含基本类型。该对象来自click事件。如果我选择一个新对象,则当前选定对象的状态应更改为新对象。 不需要来自先前选择的对象的数据。那么改变状态的最佳方法是什么(在性能方面,可读性方面等等)。
const [currentSelectedObject, setCurrentSelectedObject] = useState();
setCurrentSelectedObject(newObject);
或
setCurrentSelectedObject({...currentSelectedObject, ...newObject});
或
setCurrentSelectedObject( currentSelectedObject => {...currentSelectedObject, ...newObject});
答案 0 :(得分:0)
如果您只想将currentSelectedObject
设置为一个全新的对象:
setCurrentSelectedObject(newObject);
如果您想将newObject
的属性添加到现有的,先前设置的currentSelectedObject
中,则可以使用其他两种方法之一。
答案 1 :(得分:0)
在这种情况下,setCurrentSelectedObject(newObject)
是最好的。
构造setCurrentSelectedObject({...currentSelectedObject, ...newObject})
看起来很危险,因为这样currentSelectedObject
距上次渲染时间已经过陈旧,并且上次渲染时间与当前时间之间的状态将丢失。