react-apollo 没有连接到我的 graphql 本地服务器

Posted

技术标签:

【中文标题】react-apollo 没有连接到我的 graphql 本地服务器【英文标题】:react-apollo is not connecting to my graphql local server 【发布时间】:2018-05-24 22:31:37 【问题描述】:

我一直在尝试使用 Apollo 连接到我的本地 GraphQL 服务器。下面是我使用react-apollo2.0 的尝试。但我也尝试过使用react-apollo1.4createNetworkInterface,但我得到了同样的错误。

import  graphql  from 'react-apollo';
import gql from 'graphql-tag';
import  AppRegistry  from 'react-native';
import  HttpLink  from 'apollo-link-http';
import  InMemoryCache  from 'apollo-cache-inmemory';
import  ApolloClient  from 'apollo-client';
import  ApolloProvider  from 'react-apollo';

const client = new ApolloClient(
  link: new HttpLink( uri: 'http://localhost:8000/graphql' ),
  cache: new InMemoryCache()
);

function FooList( data:  loading, posts  ) 
  if (loading) 
    return <Text>Loading</Text>;
   else 
      return (
        <List>
          <ListItem>
            <Left>
                <Text>John Doe5</Text>
                <Text note>(buyer)</Text>
            </Left>
            <Right>
                <Text note>21 min ago</Text>
            </Right>
          </ListItem>
        </List>
      );
  


export default graphql(gql`
  query allLeads 
    id
    name
  
`)(FooList);

const App = () => (
  <ApolloProvider client=client>
    <FooList/>
  </ApolloProvider>
);

export default App;

我得到的错误:

我的依赖。

  "dependencies": 
    "@expo/vector-icons": "^6.2.0",
    "apollo-client-preset": "^1.0.4",
    "expo": "^22.0.2",
    "graphql": "^0.11.7",
    "graphql-tag": "^2.6.0",
    "native-base": "^2.3.3",
    "react": "16.0.0-beta.5",
    "react-apollo": "^2.0.4",
    "react-link": "^1.0.3",
    "react-native": "^0.49.5",
    "react-navigation": "^1.0.0-beta.21"
  

根据文档,这是您应该设置的方式。我的服务器没有被击中,我可以通过http://localhost:8000/graphql 访问图形浏览器就好了。

我在这里错过了什么?

【问题讨论】:

你的服务器和你的移动项目在同一个项目吗? 没有。这是一个 Django 服务器。 尝试使用您的本地 IP 地址,例如 192.168.1.4 而不是 'localhost' @Dyo:同样的错误。使用了我的 IP 地址 192.168.1.4。文档说也要使用localhost 您是否在控制台中看到有关错误的更多信息?或者试试这个:function FooList( data: error, loading, posts ) if (error) return &lt;Text&gt;error.message&lt;/Text&gt;; 【参考方案1】:

来自android docs:

模拟器的每个实例都在虚拟路由器/防火墙后面运行 将其与您的开发机器网络隔离的服务 界面和设置以及来自互联网。模拟设备 看不到您的开发机器或其他模拟器实例 网络。相反,它只看到它是通过以太网连接的 到路由器/防火墙。

每个实例的虚拟路由器管理 10.0.2/24 网络 地址空间——路由器管理的所有地址都采用以下形式 10.0.2.xx,其中 xx 是一个数字。该空间内的地址由模拟器/路由器预先分配如下:

10.0.2.1 路由器/网关地址

10.0.2.2 主机环回接口的特殊别名(即开发机器上的 127.0.0.1)

10.0.2.3 第一个 DNS 服务器

10.0.2.4 / 10.0.2.5 / 10.0.2.6 可选的第二、第三和第四个 DNS 服务器(如果有)

10.0.2.15 模拟设备网络/以太网接口

127.0.0.1 模拟设备环回接口

请注意,此虚拟路由器仅供 AVD 模拟器使用,其他模拟器可能不同

【讨论】:

【参考方案2】:

我认为错误与 apollo 无关,您似乎在一个文件中使用 export default 两次,因为它是不允许的

【讨论】:

以上是关于react-apollo 没有连接到我的 graphql 本地服务器的主要内容,如果未能解决你的问题,请参考以下文章

使用 Express-GraphQL 和 React-Apollo 订阅 GraphQL

为啥客户端没有连接到我的 tcp 服务器?

Heroku 没有连接到 Mongo Atlas DB?

Heroku 没有连接到 Mongo Atlas DB?

如何将我的手机连接到eclipse

为啥我的 tcp syn 消息没有得到 tcp syn ack 所以我无法连接到服务器