Проблема как описано в заголовке. У меня в родителе есть состояние, которое я хочу обновить у ребенка. Однако передача функции setState в качестве реквизита и ее обновление в дочернем useEffect вызывает al oop. Это происходит независимо от массива зависимостей.
Я полагал, что это происходит потому, что обновление родительского состояния вызывает повторную визуализацию дочернего элемента, обновление зависимой от проп и запуска другой повторной визуализации. Хотя я не уверен, что это правильно.
Если кто-то может объяснить, почему это происходит, и найти правильное решение, я был бы рад.
Кроме того, ниже приведена логика c, которая вызывает это поведение.
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>)
}