"Обычно запросы делаются в useEffect" это чтобы они не мешали отрисовке компонентов.
Но вы хотите запрос по событию "клик по кнопке", вот в нем и вызывайте.
Если вам нужно делать запросы на множество событий, под новое состояние компонента,
то можно добавить переменную
const [requestIteration, setRequestIteration] = useState(1);
useEffect(() => { <request> }, [requestIteration]);
const onClick = () => { setRequestIteration(requestIteration + 1) }
так у вас запрос будет после каждой смены состояния