Estoy tratando de obtener datos usando useInfiniteQuery, pero en mi consola, estoy obteniendo los datos pero los parámetros de página se muestran indefinidos, ¿me falta algo para obtener los parámetros de página?
Aquí está mi gancho de consulta
const useActivityFeedData = () => { const {data} = useInfiniteQuery( ACTIVITY_FEED, ({pageParam}) => Api.user.getActivityFeedData(pageParam), { getNextPageParam: (lastPage: any) => lastPage?.meta, }, ); console.log(data) };mi API
getActivityFeedData: (pageParam: number) => { console.log(pageParam, 'pageParam'); // undefined return api.get( `/rest/s1/eyon/viewer/channel/activity-feed?pageSize=10&pageIndex=0`, {}, {}, ); },No te estás perdiendo nada: este es el comportamiento previsto. pageParams siempre se calcula para la página siguiente , generalmente a partir del resultado anterior . Eso es lo que haces en getNextPageParams .
Para la primera página, no hay "resultado anterior", porque es la primera página. Es por eso que los pageParams no están undefined . Tenga en cuenta cómo usamos los valores predeterminados durante la desestructuración en los ejemplos, por ejemplo:
const queryResult = useInfiniteQuery( ['projects'], ({ pageParam = 0 }) => axios.get('/api/projects?cursor=' + pageParam), { getNextPageParam: (lastPage, pages) => lastPage.nextCursor, } ) para la primera página, el cursor se establecerá en 0 , ya que pageParam no está undefined .
Por lo tanto, depende de usted convertir undefined en algo que represente "la primera página" para su llamada API.