React Native [Network error]: TypeError: Network request failed using Apollo Client
React Native [Network error]: TypeError: Network request failed using Apollo Client
我只想使用带有 Expo 的 React Native 在本地主机上连接我的 Apollo 服务器。
如果我尝试使用以下 api link 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",
知道我做错了什么吗?
主机 *.lp.gql.zone
是 Launchpad graphql 服务器。因此,您的服务器 运行 位于 Launchpad 上,而不是本地计算机上。
使用 Expo 连接到本地计算机也没有多大意义。本例中的 "localhost" 是运行该应用程序的 phone 设备。
我猜你真正想要的是让设备上的 Expo 应用程序连接到 mac/pc 上的开发 graphql 服务器?在这种情况下,您应该使用在调试视图中看到的 IP 地址:
在这种情况下,您的连接 url 变为:http://10.10.9.70:8080/graphql
我只想使用带有 Expo 的 React Native 在本地主机上连接我的 Apollo 服务器。
如果我尝试使用以下 api link 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",
知道我做错了什么吗?
主机 *.lp.gql.zone
是 Launchpad graphql 服务器。因此,您的服务器 运行 位于 Launchpad 上,而不是本地计算机上。
使用 Expo 连接到本地计算机也没有多大意义。本例中的 "localhost" 是运行该应用程序的 phone 设备。
我猜你真正想要的是让设备上的 Expo 应用程序连接到 mac/pc 上的开发 graphql 服务器?在这种情况下,您应该使用在调试视图中看到的 IP 地址:
在这种情况下,您的连接 url 变为:http://10.10.9.70:8080/graphql