Вы должны передать все зависимости при объявлении второго аргумента выключенным useEffect
.
Проблема в том, что firtstTimeCourseList
- это callback
, предоставляемый через props
, что означает, что он не имеет стабильной подписи, поэтому изменяет каждый рендер, всегда вызывая эффект. Вы можете обернуть свой обратный вызов дополнительным уровнем проверки зависимостей с помощью useCallback
const Component = ({ handlerFromParent }) =>{
//Assuming that the handler doesn't have to change
const stableHandler = useCallback(handlerFromParent, [])
useEffect(() =>{
stableHandler()
},[stableHandler])
}
Для получения более подробной информации проверьте эту статью от Дана Абрамова