2017-06-13 8 views
0

zu verwenden, so arbeite ich an Relais für reagieren Anwendung mit serverseitigen Rendering. Ich versuche Relais zu verwenden, um Daten vom graphql Endpunkt zu erhalten.Relay Modern - Wie fetchQuery ohne fragmentContainer

Ich folgte irgendwie this, mit fetchQuery, um Daten zu erhalten, indem Sie eine Anfrage von kompilierten graphql von Relais-Compiler.

z.B.

import { graphql, fetchQuery } from 'react-relay' 

const query = graphql` 
    query SomeQuery($id: ID) { 
     author(id: $id) { 
     name 
     ...SomeFragment_authorData 
     } 
    } 
` 

const variables = { "id" : "1f" }; 

fetchQuery(env, query, variables) 
    .then((jsonData) => { console.log(jsonData); }) 

, wenn es Ausführung beendet ist, gibt es mir eine Art dieses Objekts:

{ 
    author: { 
    __fragment: { ... } 
    ... 
    } 
} 

Was ich davon ausgehen, werden von Kindern Komponenten mit createFragmentContainer() die realen Daten erhalten eingewickelt werden.

Da ich nicht createFragmentContainer() benutze, bin ich nicht sicher, wie man die Daten richtig erhält, gibt es irgendeine Möglichkeit, über die Antwort in die echten Daten umzuwandeln? jede Hilfe wäre willkommen!

Hinweis:

Im Moment ist das, was ich tun, um die Daten zu erhalten: env._network.fetch(query(), variables). Es funktioniert, aber es scheint nicht richtig, dass ich in private Variable graben muss, um die fetch, die ich zur Verfügung gestellt Network Objekt zu bekommen.

+0

In Artikel Sie verknüpfen 'fetchQuery' von' Relais-runtime' importiert und nicht 'reagieren-relay'. Vielleicht ändern sich auf diese Weise die Daten, die Sie in der Antwort erwarten. –

Antwort

0

Sie benötigen eine Relais-Richtlinie zu Ihrem Fragmente Ausbreitung hinzuzufügen: ...SomeFragment_authorData @relay(mask: false)

Verwandte Themen