Ich bin in der Lage gewesen, einen einfachen graphql Bediener mit Eil-graphql zu bilden.Wie man Daten mit apollo holt und natives reagiert
In http://localhost:8080/graphql
für die Abfrage:
{
grocers {
_id
name
description
location
},
products(grocerId: "585676ef987ed341fed7fdd2") {
name
}
}
ich folgendes:
{
"data": {
"grocers": [
{
"_id": "58567074987ed341fed7fcb1",
"name": "Martina",
"description": "Las mejores verduras de la alpujarra",
"location": "Ugíjar"
},
{
"_id": "585676ef987ed341fed7fdd2",
"name": "Antonio",
"description": "Leña y calorcito para todos!",
"location": "Ugíjar"
}
],
"products": [
{
"name": "Concierto de guitarra"
}
]
}
}
So weit so gut. Jetzt möchte ich von React Native abfragen. Ich habe es mit dem Apollo-Client versucht. Im Moment konnte ich mit der Vanilla-Methode wie in ihren Dokumenten beschrieben abfragen, und ich bekomme die richtigen Ergebnisse.
Aber jetzt kämpfe ich dafür mit dem reaktiven Apollo-Werkzeug wie hier erklärt . Hier ist der Code:
// ...
const networkInterface = createNetworkInterface({ uri: 'http://localhost:8080/graphql' });
const client = new ApolloClient({
networkInterface
});
class Alpuzon extends Component {
constructor() {
super(...arguments);
}
_renderScene(route, navigator) {
if (route.id === 1) {
return <AlpuzonPage navigator={navigator} />
} else if (route.id === 2) {
return <PageTwo navigator={navigator} />
}
return false;
}
_configureScene() {
return Navigator.SceneConfigs.FloatFromRight;
}
render() {
return (
<ApolloProvider client={client}>
<Navigator
initialRoute={{ id: 1 }}
renderScene={this._renderScene}
configureScene={this._configureScene}
/>
</ApolloProvider>
);
}
}
// ...
let AlpuzonPage = React.createClass({
_handlePress() {
this.props.navigator.push({id: 2});
},
render() {
const getGrocersQuery = gql`query getGrocersQuery { grocers { name } }`;
class GrocerListView extends Component {
render() {
<ListView
dataSource={data.grocers}
renderRow={(obj) => <Text>{obj.name}</Text>}
/>
}
}
GrocerListView.propTypes = {
data: PropTypes.shape({
loading: PropTypes.array.isRequired,
grocers: PropTypes.array
}).isRequired
};
const GrocerListViewWithData = graphql(getGrocersQuery)(GrocerListView);
return (
<View style={{ flex: 1, flexDirection: 'column'}}>
<GrocerListView />
</View>
);
}
});
... Ich weiß nicht genau, wie apollo funktioniert, ich bin auch neu zu reagieren Einheimische und GraphQl so dass im Grunde bin ich ziemlich verloren. Die Dokumentation hilft mir nicht viel:/
Gestern habe ich es bei t herausgefunden er endet. Danke trotzdem, weil du recht hast. Die Sache mit der Dokumentation ist, dass Apollo Sie auf verschiedene Arten Dinge tun kann, aber die Dokumentation nicht immer alle von ihnen zeigen. – R01010010