2016-11-28 2 views
1

Ich habe ein Problem mit render Rückruf in Relay.Renderer.Relay.Renderer render Callback stellt keine abgerufenen Daten zur Verfügung

export const renderCallback = ({ done, error, retry, stale, props, element }) => { 

    console.log(props) 

    // if returning undefined, previously rendered view is rendered 
    return undefined 
} 

props ist null, bis er die Daten abruft und wenn es schließlich nicht null, es nicht abgerufenen Daten enthalten.

Zum Beispiel, wenn es Knoten Abfrage ist, protokolliert props.node ist folgende:

node: { 
    __dataID__: "AH4zdDo1ODBjYVWkZTZmNzFgDSJmMTg1YQQ5Y2E=" 
    __fragments__: { 
     4::client: [ 
      0: { 
       postId: null 
      } 
     ] 
    } 
} 

Komponente tatsächlich die Daten hat, aber es aussetzt es nicht in Relay.Rendererrender Rückruf.


Ist das normal und wie die Relay abgerufenen Daten in render Rückruf zugreifen?

+0

machen, ist es nicht normal ist. Uns fehlt der Code, der den Container tatsächlich erstellt, könnten Sie ihn veröffentlichen? – whitep4nther

+0

Sie meinen 'Relay.createContainer'? Ich verwende nicht 'Relay.RootContainer' @ whitep4nther – Solo

+0

Ich meine' Renderer ja, aber auch 'createContainer'. In der Tat, Ihr Code;) – whitep4nther

Antwort

0

Sie sollten die Parameter von Relay.Renderer überprüfen

Gefällt Ihnen dieses Hallo https://github.com/sibelius/ExNavRelay/blob/master/src/RelayUtils.js#L114

+0

Ich benutze es tatsächlich, wenn Sie auf meine Frage, wie folgt aussehen: 'render = {renderCallback}' – Solo

+0

Render-Funktion wird mehr als einmal aufgerufen, müssen Sie eine Ladeanzeige rendern, bis Relay die Requisiten vom Server bekommen –

+1

Ja , Ich bin mir dessen bewusst. Mein Problem ist, dass Daten, die schließlich von Relay geholt werden, nicht in der 'render' Funktion in' requisiten' verfügbar sind. – Solo

Verwandte Themen