Встречается на собеседованиях • сегодня

Можно ли передать Callback функцию в UseEffect

Да, можно передать callback в `useEffect`, но важно помнить несколько моментов: 1. **Обернуть в useCallback**: Если callback зависит от пропсов или состояния, оберните его в `useCallback`, чтобы избежать лишних ререндеров. 2. **Зависимости**: Укажите callback в массиве зависимостей `useEffect`, иначе эффект будет использовать устаревшее замыкание. Пример: ```jsx const MyComponent = ({ onDataFetch }) => { const [data, setData] = useState(null); const fetchData = useCallback(async () => { const result = await fetch('/api/data'); const json = await result.json(); setData(json); onDataFetch(json); }, [onDataFetch]); useEffect(() => { fetchData(); }, [fetchData]); return
{data && }
; }; ``` Без `useCallback` эффект будет срабатывать при каждом рендере, так как ссылка на функцию будет меняться.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы