我一直在尝试使用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访问图形浏览器就好了。
我在这里缺少什么?
答案 0 :(得分: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仿真器使用,对于其他仿真器可能不同
答案 1 :(得分:0)
我认为错误与apollo无关,似乎你在一个文件中使用导出默认值两次,因为它是不允许的