Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

266
Vistas
Reat Native & RTK Query: llame a otro punto final cuando la solicitud sea exitosa

Soy nuevo en Redux y RTK Query y no entiendo cómo puedo obtener datos de otro punto final cuando la respuesta de otro punto final es exitosa.

Creé una API como esa:

 import { Config } from '@/Config' import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react' const baseQuery = fetchBaseQuery({ baseUrl: Config.API_URL }) const baseQueryWithInterceptor = async (args, api, extraOptions) => { let result = await baseQuery(args, api, extraOptions) if (result.error && result.error.status === 401) { // Deal with unauthorised } return result } export const api = createApi({ baseQuery: baseQueryWithInterceptor, endpoints: () => ({}), })

Tengo módulos para cada recurso, ejemplo:

 // /modules/matches import { api } from '../../api' import { fetchMatches } from '@/Services/modules/matches/fetchMatches' export const matchApi = api.injectEndpoints({ endpoints: build => ({ fetchMatches: fetchMatches(build), }), overrideExisting: false, }) export const { useFetchMatchesQuery } = matchApi // /modules/matches/fetchMatches export const fetchMatches = build => { return build.query({ query: type => ({ url: `matches/${type}` }) }) }

Entonces, en mi componente lo estoy llamando con:

 const { data: matches, error, isLoading } = useFetchMatchesQuery('explorer')

Ahora, lo que debo hacer cuando useFetchMatchesQuery tiene éxito es:

  1. Cree una matriz con la identificación de todas las coincidencias a partir de los datos de respuesta useFetchMatchesQuery
  2. Llame a otra consulta para obtener otros datos con matchsIds en params
  3. Use la respuesta en el mismo componente que representa los datos de matches .
about 4 years ago · Santiago Gelvez
2 Respuestas
Responde la pregunta

0

La opción principal aquí es tener un segundo gancho useSomeOtherQuery() en el mismo componente, pero "omitir" esa consulta hasta que se complete la primera consulta. Esto se puede hacer pasando {skip: false} como una opción, o la variable skipToken como argumento de consulta:

https://redux-toolkit.js.org/rtk-query/usage/conditional-fetching

about 4 years ago · Santiago Gelvez Denunciar

0

Aquí está la solución que usé:

 // /Containers/MyContainer const [matchesIds, setMatchesIds] = useState([]) const { data: matches, error: matchesError, isLoading: matchesIsLoading, } = useFetchMatchesQuery('explorer') const { data: winnerMarkets, error: winnerMarketsError, isLoading: winnerMarketsIsLoading, } = useFetchWinnerMarketsQuery(matchesIds, { skip: matchesIds.length === 0 }) useEffect(() => { if (matches) { const mIds = [] matches.map(match => { mIds.push(match.id) }) setMatchesIds(mIds) } }, [matches])
about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda