useResource
useResource
is used to get the resources array that you defined in <Refine>
. It also returns the resource
object. You can pass a resource name or identifier to match a resource or it will return the resource object that matches the current route.
If you pass a resource name or identifier to useResource
, it will return the resource
object that matches the name or identifier. If there is no match, a temporary resource
will be created with the provided name or identifier.
Usageβ
Without parametersβ
If you don't pass any parameter to useResource
, it will return the resource object that matches the current route by default. If there is no match, the resource
will be undefined
.
import { useResource } from "@refinedev/core";
const { resources, resource, action, id } = useResource();
With a resource name or identifierβ
If you pass a resource name or identifier to useResource
, it will return the resource object that matches the name or identifier. If there is no match, a temporary resource
will be created with the provided name or identifier.
import { useResource } from "@refinedev/core";
const { resource } = useResource("posts");
Return Valuesβ
resourcesβ
An array of resources that you defined in <Refine>
.
resourceβ
The resource
object.
resourceNameβ
Resource name of the resource
object.
idβ
id
parameter of the current route.
actionβ
action
from the current route if there is a match.
selectβ
The function allows you to retrieve a resource
object and matched identifier
by providing either a resource name
or identifier
. By default, if there is no match for the given name
or identifier
, the function will return the resource
object and identifier
associated with the provided value.
If you don't pass any parameter to useResource
, it will try to infer the resource
from the current route. If there is no match, the resource
and identifier
will be undefined
.
The function also accepts a second parameter force
which is true
by default. If you set it to false
, it will not return a resource
object and identifier
if there is no match.
identifierβ
Identifier value for the current resource, this can either be the identifier
property or the name
property of the resource.
API Referenceβ
Propertiesβ
Return valueβ
Description | Type |
---|---|
resources | IResourceItem[] |
resource | IResourceItem | undefined |
resourceName | string | undefined |
id | BaseKey |
action | undefined | "list" | "create" | "edit" | "show" | "clone" |
select | (resourceName: string, force?: boolean) => { resource: IResourceItem | undefined, identifier: string | undefined} |
identifier | string | undefined |
Interfacesβ
interface IResourceComponents {
list?: string | React.ComponentType<any> | { component: React.ComponentType<any>; path: string };
create?: string | React.ComponentType<any> | { component: React.ComponentType<any>; path: string };
edit?: string | React.ComponentType<any> | { component: React.ComponentType<any>; path: string };
show?: string | React.ComponentType<any> | { component: React.ComponentType<any>; path: string };
}
interface IResourceItem extends IResourceComponents {
name: string;
identifier?: string;
meta?: MetaProps;
}