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></>)}</>)}
The best JavaScript newsletter! Delivered every Monday to over 76,000 devs.