2017-05-04 132 views
2

我有一個函數可以成功地發出請求,但是在將它轉換爲React-Redux數據流時遇到問題,因爲我無法弄清楚如何返回接收到的對象回調。Facebook圖形API:從GraphRequest回調對象返回

我目前沒有工作,但我相信它使請求成功,因爲我可以在console.log中看到它。

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 
    } 

回答

0

不回答我直接問,但我的問題的解決方案是直接使API調用的動作內,從回調分派對象

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() 
    }) 
} 
相關問題