API Options
const { data, error, isValidating, mutate } = useSWR(key, fetcher, options)
Parameters
key
: a unique key string for the request (or a function / array / null) (advanced usage)fetcher
: (optional) a Promise returning function to fetch your data (details)options
: (optional) an object of options for this SWR hook
Return Values
data
: data for the given key resolved byfetcher
(or undefined if not loaded)error
: error thrown byfetcher
(or undefined)isValidating
: if there's a request or revalidation loadingmutate(data?, shouldRevalidate?)
: function to mutate the cached data
Options
suspense = false
: enable React Suspense mode (details)fetcher = window.fetch(url).then(res => res.json())
: the fetcher functioninitialData
: initial data to be returned (note: This is per-hook) (details)revalidateOnMount
: enable or disable automatic revalidation when component is mounted (by default revalidation occurs on mount when initialData is not set, use this flag to force behavior)revalidateOnFocus = true
: auto revalidate when window gets focused (details)revalidateOnReconnect = true
: automatically revalidate when the browser regains a network connection (vianavigator.onLine
) (details)refreshInterval = 0
: polling interval (disabled by default) (details)refreshWhenHidden = false
: polling when the window is invisible (ifrefreshInterval
is enabled)refreshWhenOffline = false
: polling when the browser is offline (determined bynavigator.onLine
)shouldRetryOnError = true
: retry when fetcher has an errordedupingInterval = 2000
: dedupe requests with the same key in this time spanfocusThrottleInterval = 5000
: only revalidate once during a time spanloadingTimeout = 3000
: timeout to trigger the onLoadingSlow eventerrorRetryInterval = 5000
: error retry intervalerrorRetryCount
: max error retry countonLoadingSlow(key, config)
: callback function when a request takes too long to load (seeloadingTimeout
)onSuccess(data, key, config)
: callback function when a request finishes successfullyonError(err, key, config)
: callback function when a request returns an erroronErrorRetry(err, key, config, revalidate, revalidateOps)
: handler for error retrycompare(a, b)
: comparison function used to detect when returned data has changed, to avoid spurious rerenders. By default, dequal is used.isPaused()
: function to detect whether pause revalidations, will ignore fetched data and errors when it returnstrue
. Returnsfalse
by default.
💡
When under a slow network (2G, <= 70Kbps), errorRetryInterval
will be 10s, and
loadingTimeout
will be 5s by default.
You can also use global configuration to provide default options.