Как типично набрать хук useQuery в Apollo?

Итак, вот компонент оболочки, в котором я передаю хук useQuery useOrganizationAutocompleteQueryгенерируется graphql-codegen. Я хотел бы иметь возможность передавать любой хук useQuery.

<AutocompleteField
  {...props}
  getOptionLabel={(option: OrganizationResult) => option.name.value || ''}
  queryHook={useOrganizationAutocompleteQuery}
  resource="organizations"
/>

Как мне ввести queryHook prop, чтобы принимать какие-либо хуки apollo useQuery?

queryHook: typeof useOrganizationAutocompleteQuery;

А вот что есть у Apollo для использования

export declare function useQuery<TData = any, TVariables = OperationVariables>(query: DocumentNode, options?: QueryHookOptions<TData, TVariables>): QueryResult<TData, TVariables>;

1 ответ

Вы можете настроить, откуда импортируются хуки, используя apolloReactHooksImportFromфлаг конфигурации (см. https://graphql-code-generator.com/docs/plugins/typescript-react-apollo):

generates:
  my-file.tsx:
    config:
      apolloReactHooksImportFrom: my-package
    plugins:
      - typescript
      - typescript-operations
      - typescript-react-apollo

Вы также можете указать на относительный файл с любым пользовательским useQuery крючок.

Если вы хотите иметь большую гибкость и иметь собственный сгенерированный код, вы можете написать собственный плагин для генерации кода (https://graphql-code-generator.com/docs/custom-codegen/write-your-plugin), который будет генерировать собственный код.

Кроме того, если вы думаете, что что-то можно добавить / изменить в самом кодогенераторе, дайте мне знать, мы всегда приветствуем большую гибкость:)

Другие вопросы по тегам