function Child ({data, sayHi}) {
const handleClick = useCallback(el => {
sayHi(el)
}, [])
return (
<div className="App">
{data.map(el=>
<div
onClick={()=>handleClick(el)}
>
{el}
</div>
)}
</div>
)
}
export default function App() {
const data = [1,2,3,4]
const sayHi = (el) => {
console.log('Hi '+ el)
}
return (
<Child data={data} sayHi={sayHi} />
)
}
Вы обманываете, тут нет ошибки в хуке.
По-факту же ошибку вызывает doSomething( ), в которой, скорее всего, вызывается setState( ), который вызывает рендер и так далее до бесконечности, что не позволяет отрендерить.