Допустим есть динамическая страница
/product/:id
Нужно собрать данные с 4х урлов
Как используя
queryClient.prefetchQuery собрать данные? Ключ для запроса всегда одинаковый, меняется только функция запроса.
Что-то типо такого.
export const getStaticProps = async (context) => {
try {
const queryClient = new QueryClient();
const { idPage } = context.params;
const id1 = 100;
const id2 = 200;
const id3 = 300;
const id4 = 400;
await queryClient.prefetchQuery(['keyQuery', idPage], async () => await dataRequest1(id1)); // url: api/path1/100
await queryClient.prefetchQuery(['keyQuery', idPage], async () => await dataRequest2(id2)); // url: api/path2/200
await queryClient.prefetchQuery(['keyQuery', idPage], async () => await dataRequest3(id3)); // url: api/path3/300
await queryClient.prefetchQuery(['keyQuery', idPage], async () => await dataRequest4(id4)); // url: api/path4/400
return {
props: {
idPage,
dehydratedState: dehydrate(queryClient)
},
revalidate: 1,
};
} catch (error) {
}
};
В теории вариант использовать один вызов
queryClient.prefetchQuery и внутри через Promise.all вызывать все запросы и вернуть объединенные данные в
queryClient