Skip to main content
Version: 3.xx.xxSource Code

useInvalidate

refine uses TanStack Query to fetch and manage the state of the data. More information about invalidation please read the TanStack Query's invalidation docs.


useInvalidate can be used to invalidate the state of a particular resource or dataProvider (with dataProviderName).

This hook is used on mutation hooks. when a mutation is success, this hook will called. For example, creating a Posts with useCreate hook will invalidate the list (useList) and many (useMany) state of the Posts resource.

info

The hook is used internally by refine. In most of the cases, you won't need this hook, but we export it as it may be useful for some use-cases that may require customized invalidation.

Basic Usage

import { useInvalidate } from '@pankod/refine-core'

const invalidate = useInvalidate()

invalidate({
resource: 'posts',
invalidates: ['list'],
})

Examples

  • To invalidate the "list" and "many" states of the Posts resource.
invalidate({
resource: 'posts',
invalidates: ['list', 'many'],
})
  • To invalidate the state of a Posts with an id of 1.
invalidate({
resource: 'posts',
invalidates: ['detail'],
id: 1,
})
  • To invalidate the "list" and "many" states of the Posts resource of the dataProvider named "second-data-provider".
invalidate({
resource: 'posts',
dataProviderName: 'second-data-provider',
invalidates: ['list'],
})
  • To invalidate all states of the dataProvider named "second-data-provider".
invalidate({
dataProviderName: 'second-data-provider',
invalidates: ['all'],
})
  • To invalidate all states of the Posts.
invalidate({
resource: 'posts',
invalidates: ['resourceAll'],
})

Invalidation Parameters

resource

A resource represents an entity in an endpoint in the API (e.g. https://api.fake-rest.refine.dev/posts). It is used to invalidate the state of a particular resource.

id

The id to use when invalidating the "detail" state.

dataProviderName

If there is more than one dataProvider, you should use the dataProviderName that you will use.

invalidates
required

Type: Array<"all", "resourceAll", "list", "many", "detail", "false"> | false

The states you want to invalidate. You can use the following values:

  • "all": Invalidates all states of the all resources.
  • "resourceAll": Invalidates all states of the given resource.
  • "list": Invalidates the "list" state of the given resource.
  • "detail": Invalidates the "detail" state of the given resource and id.
  • "many": Invalidates the "many" state of the given resource.

API Reference

Invalidation Parameters

PropertyDescriptionTypeDefault
invalidates
Required
The states you want to invalidate.all, resourceAll, list, many, detail, false
resourceResource name for State invalidation.string
idThe id to use when invalidating the "detail" state.BaseKey
dataProviderNameThe name of the data provider whose state you want to invalidate.stringdefault