React Native [Ошибка сети]: Ошибка типа: сбой сетевого запроса с использованием клиента Apollo - PullRequest
0 голосов
/ 30 октября 2018

Я просто хочу подключиться к серверу Apollo на локальном хосте, используя React Native с Expo.

Если я попытаюсь использовать следующую ссылку API https://q815p14lp.lp.gql.zone/graphql, она работает нормально. Но если я пытаюсь использовать http://127.0.0.1:8080/graphql или http://localhost:8080/graphql, я получаю следующую ошибку: [Network error]: TypeError: Network request failed

Это мой код, к которому я пытаюсь подключиться.

const httpLink = new HttpLink({ uri: 'http://127.0.0.1:8080/graphql' });

const authLink = setContext(async (_, { headers }) => {
  const token = await getToken();

  return {
    headers: {
      ...headers,
      authorization: token ? `Bearer ${token}` : null,
    }
  };
});

const errorLink = onError(({ networkError, graphQLErrors }) => {
  if (graphQLErrors)
    graphQLErrors.map(({ message, locations, path }) =>
      console.log(
        `[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`
      )
    );
  if (networkError) console.log(`[Network error]: ${networkError}`);
})

const client = new ApolloClient({
  link: ApolloLink.from([errorLink, authLink, httpLink]),
  cache: new InMemoryCache()
});

"apollo-boost": "^0.1.18",
"apollo-link-context": "^1.0.9",
"apollo-link-error": "^1.1.1",
"expo": "^30.0.1",
"react-apollo": "^2.2.4",

Есть идеи, что я делаю не так?

1 Ответ

0 голосов
/ 30 октября 2018

Хост *.lp.gql.zone является сервером Launchpad graphql. Итак, ваш сервер работает на Launchpad, а не на вашем локальном компьютере.

Подключение к локальной машине с помощью Expo не имеет особого смысла. В данном случае «localhost» - это телефонное устройство, на котором запущено приложение.

Полагаю, что вам действительно нужно, чтобы приложение Expo на устройстве подключалось к вашему серверу graphql для разработки на вашем mac / pc? В этом случае вы должны использовать IP-адрес, который вы видите в представлении отладки:

enter image description here

Ваш URL для подключения в этом случае становится: http://10.10.9.70:8080/graphql

...