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.4
和createNetworkInterface
,但我得到了同样的错误。
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 <Text>error.message</Text>;
【参考方案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 本地服务器的主要内容,如果未能解决你的问题,请参考以下文章