【发布时间】:2020-08-09 09:38:24
【问题描述】:
问题如标题所述。我的父母中有一个状态,我想在孩子中更新。但是,将 setState 函数作为道具传递并在孩子的 useEffect 中更新它会导致循环。无论依赖数组如何,都会发生这种情况。
我认为这是因为更新父状态会导致重新渲染子状态,更新所依赖的道具并触发另一个重新渲染。不过,不确定这是否正确。
如果有人能解释为什么会发生这种情况并提供适当的解决方案,我会很高兴。
此外,以下是导致此行为的逻辑。
export const Parent = () {
const [state, setState] = useState({something})
switch(thing) {
return <Child onNext={someFunction} setSettings={setState}/>
}
}
const Child = (props) => {
{ onNext, setSettings } = props
const [childState, setChildState] = useState({something})
useEffect(
() => {
setSettings(childState)
}, [childState])
return(<h1>foobar</h1>)
}
【问题讨论】:
标签: javascript reactjs logic react-hooks state