2017-08-11 88 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

相关问题