Я пытаюсь явно указать клиента на useMutation
. Все работает отлично, за исключением того факта, что машинопись, кажется, видит несоответствие типов.
Type 'DefaultClient<unknown>' is not assignable to type 'ApolloClient<object>'.
Клиент очень похож на тот, который показан в документации по аутентификации токена apollo
import { ApolloClient } from 'apollo-client';
import { createHttpLink } from 'apollo-link-http';
import { setContext } from 'apollo-link-context';
import { InMemoryCache } from 'apollo-cache-inmemory';
const httpLink = createHttpLink({
uri: '/graphql',
});
const authLink = setContext((_, { headers }) => {
// get the authentication token from local storage if it exists
const token = localStorage.getItem('token');
// return the headers to the context so httpLink can read them
return {
headers: {
...headers,
authorization: token ? `Bearer ${token}` : "",
}
}
});
export const client = new ApolloClient({
link: authLink.concat(httpLink),
cache: new InMemoryCache()
});
Все, что я на самом деле делаю, это импорт клиент и предоставить его в качестве опции для useMutation.
import {useMutation} from '@apollo/react-hooks'
import {client} from './client'
const MY_QUERY = `
...
`
const [myQuery] = useMutation(MY_QUERY, {
client: client,
onCompleted: () => {
// do some stuff..
}
})
useMutation, похоже, ожидает другого типа, который является выводом. Как я могу решить это несоответствие?