If you ever want to disable a query from automatically running, you can use the enabled = false
option.
When enabled
is false
:
status === 'success'
or isSuccess
state.status === 'idle'
or isIdle
state.invalidateQueries
and refetchQueries
calls that would normally result in the query refetching.refetch
can be used to manually trigger the query to fetch.function Todos() { const { isIdle, isLoading, isError, data, error, refetch, isFetching, } = useQuery('todos', fetchTodoList, { enabled: false, })
return ( <> <button onClick={() => refetch()}>Fetch Todos</button>
{isIdle ? ( 'Not ready...' ) : isLoading ? ( <span>Loading...</span> ) : isError ? ( <span>Error: {error.message}</span> ) : ( <> <ul> {data.map(todo => ( <li key={todo.id}>{todo.title}</li> ))} </ul> <div>{isFetching ? 'Fetching...' : null}</div> </> )} </> )}
Fast track your learning and
take the offical React Query course ↗️
Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.