据我了解,如果您useState(myObj)
,则仅当对对象的引用发生更改时,组件才会重新呈现。但是有时复制对象并更改它而不是仅仅更改它是不可行的,因此我通常最终会做类似的事情:
function MyComponent(){
const [myObj, setMyObj] = useState(props.myObj)
const [myObjUpdated, setMyObjUpdated] = useState(false)
function updateMyObj(alteredObject){
Object.assing(myObj, alteredObject)
setMyObjUpdated(!myObjUpdated)
}
}
然后从那里我使用updateMyObj,而我通常会使用setMyObj。
我想我的问题如下: