Reactjs 仅在第一个道具更改后使用效果更新状态

Reactjs 仅在第一个道具更改后使用效果更新状态,reactjs,react-hooks,Reactjs,React Hooks,我有无状态组件: const Comp = memo(({ name, defaultExpanded }) => { const [ isExpanded, setExpand ] = useState(defaultExpanded) useEffect(() => { setExpand(defaultExpanded) }, [defaultExpanded]) ... }) 当我使用defaultExpand=true装载组件,然后将其更改为fal

我有无状态组件:

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

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

 ...
})

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


UPD:代码链接

您确定这里没有打字错误吗<代码>默认展开(道具)!=
defaultExpanded
(您使用的值)@Andres抱歉,有一个打字错误,但不是在实际代码中。您的代码工作问题可能在于如何切换
defaultExpanded
我复制了您的组件并将其与固定的打字错误一起使用,一切正常。@Dupocas我正在通过Storybook中的旋钮切换它