(Server) State query clients - leotm/react-native-template-new-architecture GitHub Wiki
React + Promise/REST/GraphQL
- fetcher
- pagination
loading: boolean
- onError
(error: Error) => { // handle }
- onSuccess
(data<T>): T[] => { // render data }
- live/offline caching, garbage collection
- retrying
- polling
- API style declarative/on-use
- React Suspense
interface Product {
// ...
}
const getProducts = async () => {
const res = await fetch('http://localhost:1337/products')
const json: Product[] = await res.json()
return json
}
const [products, setProducts] = useState<Product[]>([])
useEffect(() => {
const doEffect = async () => {
setProducts(await getProducts())
}
doEffect()
}, [])
https://swr.vercel.app/docs/advanced/react-native
// SWRConfig global context broken with React Native
const SwrApp = (
<SWRConfig>
<App />
</SWRConfig>
)
// But useSWR fine with React Native
const { data, error } = useSWR('app_products', getProducts)
Add React Native + React Navigation compatibility: @nandorojo/swr-react-native
Redux + Promise/REST/GraphQL