Добавьте в стейт isFirstRender, например...
const [isFirstRender, setNotFirstRender] = useState(true);
useEffect(() => {
if(isFirstRender) {
// тут запрос
setNotFirstRender(false);
}
}, [param1, param2, param3, isFirstRender]);
Но, вообще, я бы всё-таки посмотрел в сторону использования цепочки промисов, чтобы параметры устанавливались лишь по мере получения последнего, это было бы более красивым решением (имхо).
Что-то типа:
useEffect(() => {
Promise1.then(() => { // первый параметр
Promise2.then(() => { // второй
Promise3.then(() => { // третий
}
}
});
}, [param1, param2, param3]);
Хотя слишком много промисов тоже так себе конструкция... Я бы на вашем месте подумал всё ж где можно улучшить архитектуру.