2016-09-02 5 views
1

ich die folgende Abfrage haben:Reagieren india graphql Abfrage mit Relais: abgerufenen Daten nicht empfangen

query { 
    viewer{ 
    place(id: "1a4871311fe990d6d94cf1eed9fd65008856e118b790e7dcf728d86bc3aef7ec"){ 
     name 
    } 
    } 
} 

was natürlich richtig auf GraphiQL funktioniert. Ich möchte diese Abfrage in einem Relay Behälter verwenden, so dass ich eine RootContainer erstellt haben:

<RootContainer 
    Component={PlaceDetailsComponent} 
    route={new PlaceDetailsRoute({placeID: this.props.id})} 
    renderFetched={(data) => { 
    console.log('data: ', data); 
    return (
     <PlaceDetailsComponent {...this.props} {...data}/> 
    ) 
    } } 
    renderLoading={() => <ProgressBar visible={true} />}/> 

, die die Daten erfolgreich holt aber alles, was ich auf der Konsole sehen kann, ist dies:

data: { placeID: '1a4871311fe990d6d94cf1eed9fd65008856e118b790e7dcf728d86bc3aef7ec', 
    viewer: 
    { __dataID__: 'Vmlld2VyLXs6aWQ9PiJ2aWV3ZXIifQ==', 
    __fragments__: { '1::client': [ {} ] } } } 

Also ich ausgecheckt, was Server tatsächlich ist geschickt und was erhalten und scheint alles richtig zu mir:

enter image description here

Hier ist mein Weg ist:

import Relay, { 
    Route 
} from 'react-relay'; 

class PlaceDetailsRoute extends Route { 
    static queries = { 
    viewer:() => Relay.QL` 
     query { 
     viewer 
     } 
     ` 
    } 
    static routeName = 'PlaceDetailsRoute' 
} 

export default PlaceDetailsRoute; 

und hier ist mein Fragment:

Relay.createContainer(PlaceDetailsContainer, { 
    fragments: { 
    viewer:() => Relay.QL` 
     fragment on Viewer { 
     place(id: "1a4871311fe990d6d94cf1eed9fd65008856e118b790e7dcf728d86bc3aef7ec") { 
      name, 
     } 
     } 
     ` 
    } 
}); 

Irgendwelche Vorschläge, was sollte ich ändern? Vielen Dank im Voraus für jede Hilfe!

+0

Welches Tool verwenden die debug die graphql-Abfrage von react-native (in Bezug auf das Bild, das Sie anhängen)? Brauche so etwas dringend. Vielen Dank. – user3740387

+1

@ user3740387 - das ist Charles, können Sie es hier herunterladen: https://www.charlesproxy.com – Roosevelt

Antwort

2

Das ist eigentlich erwartetes Verhalten. Die Relay documentation of renderFetched hat eine Notiz:

Auch wenn wir Zugriff auf den in renderFetcheddata Gegenstand haben, die eigentlichen Daten sind absichtlich undurchsichtig. Dies verhindert, dass die renderFetched eine implizite Abhängigkeit von den durch Component deklarierten Fragmenten erzeugt.

Hoffen, dass dies Ihre Verwirrung löscht.

+0

danke @Ahmad Ferdous - dieser Link wirklich geholfen. – Roosevelt

+1

Ich bin froh, das zu hören! –