useEffect仅在第一个道具更改后更新状态

时间:2019-10-31 11:30:01

标签: reactjs react-hooks

我有无状态组件:

const Comp = memo(({ name, defaultExpanded }) => {
 const [ isExpanded, setExpand ] = useState(defaultExpanded)

 useEffect(() => {
    setExpand(defaultExpanded)
  }, [defaultExpanded])

 ...
})

当我使用defaultExpand = true安装组件然后将其更改为false时,它可以正常工作,但是当我将其更改为true时,它现在可以工作了。我做错了什么,如何通过useState / useEffect正确地将道具与状态同步?

UPD:代码https://codesandbox.io/s/gallant-taussig-xe2ck?fontsize=14的链接

0 个答案:

没有答案