2016-05-14 90 views
12

我試着通過爲iOS設置一個新的React Native Project來嘗試啓動tutorial。但登錄按鈕似乎沒有工作。任何幫助表示讚賞。React Native Facebook使用官方fbsdk登錄

這裏的index.ios.js:

import React, { Component } from 'react'; 
import { 
    AppRegistry, 
    StyleSheet, 
    Text, 
    View 
} from 'react-native'; 

const FBSDK = require('react-native-fbsdk'); 
const { 
    LoginButton 
} = FBSDK; 

var Login = React.createClass({ 
    render: function() { 
    return (
     <View> 
     <LoginButton 
      publishPermissions={["publish_actions"]} 
      onLoginFinished={ 
      (error, result) => { 
       if (error) { 
       alert("login has error: " + result.error); 
       } else if (result.isCancelled) { 
       alert("login is cancelled."); 
       } else { 
       alert("login has finished with permissions: " + result.grantedPermissions) 
       } 
      } 
      } 
      onLogoutFinished={() => alert("logout.")}/> 
     </View> 
    ); 
    } 
}); 

class AwesomeProject extends Component { 
    render() { 
    return (
     <View style={styles.container}> 
     <Text> 
      Login to Facebook 
     </Text> 
     <Login /> 
     </View> 
    ); 
    } 
} 

const styles = StyleSheet.create({ 
    container: { 
    flex: 1, 
    justifyContent: 'center', 
    alignItems: 'center', 
    backgroundColor: '#F5FCFF', 
    }, 
    shareText: { 
    fontSize: 20, 
    margin: 10, 
    } 
}); 

AppRegistry.registerComponent('AwesomeProject',() => AwesomeProject); 

和仿真器的截圖: enter code here

+0

問題是功能還是樣式? –

+1

功能:點擊按鈕不會做任何事情。貶低警告是否與它有關? – philoniare

回答

6

您需要將SDK的iOS項目中應用的項目聯繫起來。

如果您使用的是react-native-sdk v0.2.0 +,則rnpm將負責此步驟,您可以按照提示here完成設置。

如果您使用的是舊版本,則需要在YourApp.xcodeproj中鏈接react-native-fbsdkxxx.xcodeproj。按照手冊中的鏈接步驟操作https://facebook.github.io/react-native/docs/linking-libraries-ios.html

+0

我明白了,謝謝。我會在稍後嘗試。只是好奇,如何在沒有手動加載類似iOS的庫的情況下正常工作? – philoniare

+1

因爲Android項目使用gradle。它從服務器拉庫,並自動爲你設置的東西。 – dzhuowen

+0

很酷,感謝後續回答:) – philoniare

相關問題