Как потребитель Apollo (front-end), у меня есть настройки клиента:
import { ApolloClient } from "apollo-client";
import { InMemoryCache } from "apollo-cache-inmemory";
import { HttpLink } from "apollo-link-http";
import { onError } from "apollo-link-error";
import { ApolloLink } from "apollo-link";
const api = new ApolloClient({
link: ApolloLink.from([
onError(({ graphQLErrors, networkError }) => {
if (graphQLErrors)
graphQLErrors.map(({ message, locations, path }) =>
console.log(
`[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`
)
);
if (networkError) console.log(`[Network error]: ${networkError}`);
}),
new HttpLink({
uri: "https://api.graph.cool/simple/v1/cixmkt2ul01q00122mksg82pn",
credentials: "same-origin"
})
]),
cache: new InMemoryCache()
});
Если я использую этот встроенный клиент в моей саге redux , он работает, но если я пытаюсь переместить его в отдельный файл и импортировать в сагу, я получаю следующую ошибку:
Error:
fetch is not found globally and no fetcher passed, to fix pass a fetch
for your environment like https://www.npmjs.com/package/node-fetch.
For example:
import fetch from 'node-fetch';
import { createHttpLink } from 'apollo-link-http';
Почему выборка доступна встроенно, но не при импорте?
Обновление: я решил эту проблему, предоставив конкретный сборщик в HttpLink
, как указано в указанной ошибке.
Я оставляю это без ответа, потому что мой вопрос о , почему это происходит , а не , как решить эту проблему .