【问题标题】:react-apollo is not connecting to my graphql local serverreact-apollo 没有连接到我的 graphql 本地服务器
【发布时间】: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;; }

标签: react-native graphql react-apollo


【解决方案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 两次,因为它是不允许的

    【讨论】:

      猜你喜欢
      • 2020-02-27
      • 2023-03-22
      • 1970-01-01
      • 2019-12-09
      • 1970-01-01
      • 2018-02-10
      • 2019-07-22
      • 2021-04-26
      • 1970-01-01
      相关资源
      最近更新 更多