Skip to content

Instantly share code, notes, and snippets.

@buglessir
Created November 8, 2021 13:37
Show Gist options
  • Save buglessir/152b4d429e2f0c386327fe0d175ad8fc to your computer and use it in GitHub Desktop.
Save buglessir/152b4d429e2f0c386327fe0d175ad8fc to your computer and use it in GitHub Desktop.
import React from 'react';
import { render } from 'react-dom';
import { QueryClientProvider, QueryClient, useQuery } from 'react-query';
const URL = 'https://randomuser.me/api/?results=5&inc=name';
const One = () => {
const { error, data, isLoading, refetch } = useQuery('test', () =>
fetch(URL).then(response => response.json())
);
if (isLoading) return <span>Loading...</span>
if (error) return <span>Error: {error.message} <button onClick={refetch}>retry</button></span>
return (
<div>
<ul>
{
data.results.map((item, key) => <li key={key}>{item.name.first} {item.name.last}</li>)
}
</ul>
<button onClick={refetch}>Refetch</button>
</div>
)
}
const Two = () => {
const { error, data, isLoading, refetch } = useQuery('test', () =>
fetch(URL).then(response => response.json())
);
if (isLoading) return <span>Loading...</span>
if (error) return <span>Error: {error.message} <button onClick={refetch}>retry</button></span>
return (
<div>
<ul>
{
data.results.map((item, key) => <li key={key}>{item.name.first} {item.name.last}</li>)
}
</ul>
<button onClick={refetch}>Refetch</button>
</div>
)
}
const queryClient = new QueryClient();
const App = () => {
return (
<QueryClientProvider client={queryClient}>
<One />
<Two />
</QueryClientProvider>
)
}
render(
<App />,
document.getElementById('root')
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment