useRetrieve()
tip
Use useFetch() instead
- Type
 - With Generics
 
function useRetrieve(
  endpoint: ReadEndpoint,
  params: object | null,
): Promise<any> | undefined;
function useRetrieve<
  Params extends Readonly<object>,
  S extends Schema
>(
  endpoint: ReadEndpoint<(p:Params) => Promise<any>, S>,
  params: Params | 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 first-render
 - 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.