use-query.mdx 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. ---
  2. title: "UseQuery"
  3. generated: true
  4. ---
  5. <GenerationInfo sourceFile="packages/admin-ui/src/lib/react/src/react-hooks/use-query.ts" sourceLine="43" packageName="@vendure/admin-ui" />
  6. A React hook which provides access to the results of a GraphQL query.
  7. *Example*
  8. ```ts
  9. import { useQuery } from '@vendure/admin-ui/react';
  10. import { gql } from 'graphql-tag';
  11. const GET_PRODUCT = gql`
  12. query GetProduct($id: ID!) {
  13. product(id: $id) {
  14. id
  15. name
  16. description
  17. }
  18. }`;
  19. export const MyComponent = () => {
  20. const { data, loading, error } = useQuery(GET_PRODUCT, { id: '1' }, { refetchOnChannelChange: true });
  21. if (loading) return <div>Loading...</div>;
  22. if (error) return <div>Error! { error }</div>;
  23. return (
  24. <div>
  25. <h1>{data.product.name}</h1>
  26. <p>{data.product.description}</p>
  27. </div>
  28. );
  29. };
  30. ```
  31. ```ts title="Signature"
  32. function useQuery<T, V extends Record<string, any> = Record<string, any>>(query: DocumentNode | TypedDocumentNode<T, V>, variables?: V, options: { refetchOnChannelChange: boolean } = { refetchOnChannelChange: false }): void
  33. ```
  34. Parameters
  35. ### query
  36. <MemberInfo kind="parameter" type={`DocumentNode | TypedDocumentNode<T, V>`} />
  37. ### variables
  38. <MemberInfo kind="parameter" type={`V`} />
  39. ### options
  40. <MemberInfo kind="parameter" type={`{ refetchOnChannelChange: boolean }`} />