useState({}),是“强制”重新渲染的最佳方法

时间:2020-10-07 11:46:54

标签: reactjs react-hooks use-state

据我了解,如果您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。

我想我的问题如下:

  1. 是我遇到的正常问题,还是根本不应该存在的问题(因为我的代码结构应不同)
  2. 是我目前使用的解决方案,还是有一些我可能没有考虑的严重缺点/副作用?
  3. 是否有更好或更常规的方式来处理此问题?

0 个答案:

没有答案