2017-05-04 3 views
2

Ich habe eine Funktion, die erfolgreich Anfragen, aber habe Probleme bei der Übersetzung in den React-Redux-Datenfluss, weil ich nicht herausfinden, wie das Objekt, das empfangen wird zurückgeben der RückrufFacebook Grafik API: Rückgabe Objekt von GraphRequest Callback

Was ich derzeit habe funktioniert nicht, aber ich bin zuversichtlich, dass es die Anfrage erfolgreich macht, weil ich es sehen kann, wenn ich console.log es.

import FBSDK, { AccessToken, GraphRequest, GraphRequestManager } from 'react-native-fbsdk' 

export const callback = (error, result) => { 
    if (error) { 
    console.log(error); 
    return error 
    } else { 
    console.log(result); 
    return result; 
    } 
} 

export const graphRequestFor = fields => { 
    AccessToken.getCurrentAccessToken() 
    .then(token => { 
    console.log(token); 
    const request = new GraphRequest(
     '/me', 
     { 
     accessToken: token.accessToken, 
     parameters: { 
      fields: { 
      string: fields 
      } 
     } 
     }, callback 
    ) 
    new GraphRequestManager().addRequest(request).start() 
    }) 
} 
export const login =() => { 
    graphRequestFor('first_name, last_name') 
    .then(results => { 
     return results 
    }) //undefined 
    } 

Antwort

0

keine Antwort auf meine direkte Frage, sondern eine Lösung für mein Problem ist der API-Aufruf direkt in der Aktion zu machen und das Objekt aus dem Callback-Dispatching

import FBSDK, { AccessToken, GraphRequest, GraphRequestManager } from 'react-native-fbsdk' 

export const login = params => dispatch => { 
    AccessToken.getCurrentAccessToken() 
    .then(token => { 
    const request = new GraphRequest(
     '/me', 
     { 
     accessToken: token.accessToken, 
     parameters: { 
      fields: { 
      string: params 
      } 
     } 
     }, (error, result) => { 
     if (error) { 
      console.log(error); 
      return dispatch(receiveCurrentUser(error)) 
     } else { 
      return dispatch(receiveCurrentUser(result)) 
     } 
     } 
    ) 
    new GraphRequestManager().addRequest(request).start() 
    }) 
} 
Verwandte Themen