Ich habe eine apollo-ummantelte Komponente, die meine Komponente mit Antwortdaten aus der Github Graphql v4 API liefern soll. Ich beabsichtige, eine Zeichenfolge (SEARCH_QUERY) von einem anderen Teil der App zu verwenden, die in meiner gql-Abfrage verwendet werden soll, aber github gibt immer undefined
zurück. Ich folge apical apollo docs http://dev.apollodata.com/react/queries.html#graphql-options. Ich sehe nicht, was ich falsch mache.Wie kann ich dynamische Variablen in react-apollo graphql-Abfrage korrekt verwenden?
import React, { Component } from 'react';
import { Text, FlatList } from 'react-native';
import { graphql } from 'react-apollo';
import gql from 'graphql-tag';
import { SEARCH_QUERY } from './Home' // this is a string like "react"
// The data prop, which is provided by the wrapper below contains,
// a `loading` key while the query is in flight and posts when ready
const ReposList = ({ data: { loading, search }}) => <Text>SearchResults</Text>
// this doesnt work because I cant properly inject 'SEARCH_QUERY' string
const searchRepos = gql`
query searchRepos($type: searchType!, $query: String!) {
search(type: REPOSITORY, query: $query, first: 100) {
edges {
node {
... on Repository {
nameWithOwner
owner {
login
}
}
}
}
}
}
`
// The `graphql` wrapper executes a GraphQL query and makes the results
// available on the `data` prop of the wrapped component (ReposList here)
export default graphql(searchRepos, {
options: { variables: { query: SEARCH_QUERY }, notifyOnNetworkStatusChange: true }
}
)(ReposList);
Diese Abfrage ohne Variablen funktioniert gut und liefert Ergebnisse zu suchen, wie erwartet. geradeaus, oder?
const searchRepos = gql`{
search(type: REPOSITORY, query: "react", first: 100) {
edges {
node {
... on Repository {
nameWithOwner
owner {
login
}
}
}
}
}
} `
Wenn diese Github verwendet wird gibt undefined zurück.
const searchRepos = gql`
query searchRepos($type: searchType!, $query: String!) {
search(type: REPOSITORY, query: $query, first: 100) {
edges {
node {
... on Repository {
nameWithOwner
owner {
login
}
}
}
}
}
}
`
Ja, 'const searchRepos = gql \' Abfrage searchRepos ($ query: String) { Suche (Typ: REPOSITORY, Abfrage: $ query, zuerst: 100) { Kanten { Knoten { ... auf Repository { nameWithOwner Besitzer { Login } } } } } } ' hatte – fatahn
gearbeitet und hatte ordentlich Requisiten weitergegeben wie so 'Exportstandard graphql (searchRepos, { Optionen: ({} Search) => ({Variablen: {query: Search}}), // Compute Abfragevariable von prop notifyOnNetworkStatusChange: true }) (ReposList)' ... danke @ daniel-harden – fatahn