2017-08-11 58 views
1

我需要在道具上傳遞一個函數。我有這個組件:如何在道具中使用一個函數來反應原生?

import React, {Component} from 'react'; 
import { View } from 'react-native'; 
import {FBLogin, FBLoginManager} from 'react-native-facebook-login'; 

const Loginfb = (props) => (
     <FBLogin 
     style={{marginBottom: 10}} 
     ref={props.ref} 
     permissions={["email", "user_friends"]} 
     loginBehavior={FBLoginManager.LoginBehaviors.SystemAccount} 
     onLogin={props.login} 
); 

export default Loginfb; 

props.refprops.login數據功能。在我的容器組件我有這樣的:

import React, {Component} from 'react'; 
import {View} from 'react-native'; 
import {FBLogin, FBLoginManager} from 'react-native-facebook-login'; 
import Loginfb from '../components/fblogin'; 

class Inicio extends Component { 

constructor(props) { 
    super(props); 
    this.state = { 
    user: null, 
    }; 
} 

Ref = (fbLogin) => { 
    this.fbLogin = fbLogin 
} 

login = (data) => { 
    console.log("Logged in!"); 
    console.log(data); 
    this.setState({user: data.credentials}); 
} 

render() { 
    return (
     <View 
      <Loginfb 
       ref={this.ref} 
       onLogin={this.login}/> 
     </View> 
      ); 
     } 
} 
export default Inicio; 

我不明白我的錯誤:「this.props [事件]不是一個函數」

請幫助。

+0

在您的容器中嘗試。 – ThinhIT

+0

我試過了,但是錯誤繼續 –

回答

1

不太確定,但我假設上下文丟失。

是內聯的,當你把它們傳遞給孩子: myFunction.bind(this)

或容器的構造,就像這樣:

this.myFunction = this.myFunction.bind(this)

希望這有助於。

+0

在子裏可以是props.login.bind(這個)? –

+0

不,在父母的時候通過它 – flaky

+0

這個工作爲你服務@HernanHumaña? 也許你可以批准答案,讓其他人知道它有幫助:) 乾杯 – flaky

相關問題