Skip to main content
Version: 7.3

useRetrieve()

tip

Use useFetch() instead

function useRetrieve(
endpoint: ReadEndpoint,
params: object | null,
): Promise<any> | undefined;

Great for retrieving resources optimistically before they are needed.

This can be useful for ensuring resources early in a render tree before they are needed.

  • Triggers fetch:
    • On first-render
      • or parameters change
      • or required entity is deleted
      • or imperative invalidation triggered
    • and When not in cache or result is considered stale
    • and When no identical requests are in flight
    • and when params are not null
  • On Error (404, 500, etc):
    • Returned promise will reject
  • On fetch returns a promise else undefined.

Example

Simple

function MasterPost({ id }: { id: number }) {
useRetrieve(PostResource.detail(), { id });
// ...
}

Conditional

function MasterPost({ id, doNotFetch }: { id: number, doNotFetch: boolean }) {
useRetrieve(PostResource.detail(), doNotFetch ? null : { id });
// ...
}

Useful Endpoints to send

Resource provides these built-in:

  • detail()
  • list()

Feel free to add your own Endpoint as well.