useQuery first refetch returns undefined
Hello.
So, I'm trying to get an item by ID when the user clicks a button. I've searched around and found a way to do it by using
The problem is, the first
I've looked around and the problem seems to be about re-rendering . There's a possible answer, but it uses
https://stackoverflow.com/questions/75447288/reactquery-returns-undefined-as-the-first-result-then-returns-the-data
Is there a solution to this? Or perhaps a better way to get an item with ID as input on demand?
I'm using Node 18.
So, I'm trying to get an item by ID when the user clicks a button. I've searched around and found a way to do it by using
useState() for the ID, setting useQuery's enabled to false, and refetch() whenever I need to get the item.The problem is, the first
refetch() always returns undefined, so the user has to click the button twice to get the item.I've looked around and the problem seems to be about re-rendering . There's a possible answer, but it uses
onSuccess which will be deprecated soon.https://stackoverflow.com/questions/75447288/reactquery-returns-undefined-as-the-first-result-then-returns-the-data
Is there a solution to this? Or perhaps a better way to get an item with ID as input on demand?
I'm using Node 18.
Stack Overflow
So, I'm trying to fetch data -onClick- using reactQuery and to store the response in a variable.
const { data: response, refetch } = useQuery({
queryKey: ['get-response'],
queryFn: async() ...
const { data: response, refetch } = useQuery({
queryKey: ['get-response'],
queryFn: async() ...
Solution
If you want to use the value imperatively you might want to use the vanilla client (via useUtils().client) or a mutation instead