Вам не нужен эффект для отправки запроса по нажатию кнопки, вместо этого вам нужен только метод обработчика, который вы можете оптимизировать, используя useCallback
метод
const App = (props) => {
//define you app state here
const fetchRequest = useCallback(() => {
// Api request here
}, [add dependent variables here]);
return (
<input type="button" disabled={sendRequest} onClick={fetchRequest}
);
}
Запрос отслеживания с использованием переменной с useEffect
не является правильным шаблоном, поскольку вы можете установить состояние для вызова API с помощью useEffect, но дополнительный рендеринг из-за некоторых других изменений приведет к тому, что запрос будет зациклен