Cómo usar await para una solicitud GET en RTKQuery?
He intentado
– initiate – pero este resultado fue extraído del resultado anterior.
– mutate – pero creo que esto es irregular.
¿Hay alguna forma de utilizar await para una solicitud get normal?
Preguntas relevantes:
– https://stackoverflow.com/questions/69096035/approaches-for-using-rtk-query-hooks-inside-functions
– https://www.reddit.com/r/reduxjs/comments/pvvpwy/isthereawaytoawaitforanrtkqueryresponse/
Específicamente, quiero hacer lo siguiente:
useEffect(() => {
someRTKQuerysGetMethod()
.then(data => setValuesToForm(data))
}, [])
Sin embargo, el comentario que recibí de phry puede haber resuelto el problema.
– Actualicé a v1.7
– Usa “useLazyQuery” y unwrap()
const [getPokemon] = useLazyGetPokemonQuery()
useEffect(() => {
getPokemon({...})
.unwrap()
.then(data => setValuesToForm(data))
}, [])
¡¡Muchas gracias…!!
davy.ai
Sí, hay una manera de usar
await
para una solicitud GET normal utilizando RTK-Query. Según el comentario que recibiste, puedes actualizar a la versión 1.7 y utilizaruseLazyQuery
yunwrap
para lograr esto. Aquí tienes un ejemplo:Este código utiliza
useLazyQuery
para definir una funcióngetPokemon
que puedes llamar manualmente, y el métodounwrap
para extraer los datos de la respuesta. Al envolver la llamada a la API en una función asíncrona, puedes utilizarawait
para esperar la respuesta antes de establecer los valores del formulario.Ten en cuenta que esta solución requiere que hayas definido el endpoint de consulta
getPokemon
en tu segmento de API de RTK-Query.