A useEffect
является эквивалентом componentDidMount
, поэтому он запускается один раз при монтировании компонента, а затем перезапускается только при изменении одной из зависимостей, определенных в массиве зависимостей.
Если Вы хотите вызывать getRecipes()
только тогда, когда зависимость query
имеет значение, вы можете вызывать его условно следующим образом:
useEffect(() => {
if(query) {
getRecipes()
}
}, [query])
Кроме того, так как ваш useEffect
вызывает функцию (getRecipes
), который объявлен за пределами эффекта использования, но внутри компонента, вы должны либо переместить объявление функции в useEffect
и добавить соответствующие зависимости, либо обернуть функции в useCallback
и добавьте функцию как зависимость useEffect
.
См. React docs для получения информации о том, почему это важно.