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中的旋钮切换它