Вот как я опрашиваю свой движок Graphql.
export GraphQLWrapper <TData, TParam = {}>({
query,
extractData,
children,
queryVariables,
skip,
}: AsyncWrapperProps<TData, TParam>) => {
return (
<ApolloConsumer>
{client => {
const loadOptions = (
searchString: string,
): Promise<SelectOptionType[]> =>
skip
? Promise.resolve([])
: client
.query<
TData,
| AsyncSelectSearchVariables
| (AsyncSelectSearchVariables & TParam)
>({
query,
variables: {
search: `${searchString || ""}%`,
...queryVariables,
},
})
.then(extractData);
return <div>{children(loadOptions)}</div>;
}}
</ApolloConsumer>
);
};
У меня есть следующий код для выполнения запросов Graphql. Как я могу использовать то же самое для захвата ошибок GraphQL. Спасибо.
Вот так я получаю доступ к вышеуказанному компоненту:
const extractData = ({ data }: ApolloQueryResult<AccountData>) =>
data && data.vitm_account ? data.vitm_account : [];
return (
<GraphQLWrapper query={ACCOUNT_NAME_QUERY} extractData={extractData}>
{accountSelect}
</GraphQLWrapper>
);