React native如何从函数返回值到组件

时间:2019-01-04 05:02:41

标签: javascript reactjs typescript react-native react-router

我正在从Firebase数据库中获得2位用户的身份验证,但是如何从函数中返回一个值,或者该身份验证的用户是否有其他解决方案

firebase.auth()。onAuthStateChanged(user => {             如果(用户){

            firebase.database().ref('Usersyeah/').on('child_added', function (getdata) {



                var newData = getdata.val().User

                if (user.email == getdata.val().Email ){

                    if (getdata.val().User === 'User') {
                        var routes = [
                            {title: "Home",route: "Home",}
                            {title: "Pending Request",route: "Request"}]
                    } else {
                        var routes = [
                        {title: "USER",route: "Home"}
                        ]
                    }   
                }
                 getdata.val().User })
            });

        } else {

        }
    })



    return (

        <View>
            <TouchableOpacity style={{ backgroundColor: 'green', margin: 10, padding: 10 }}
                onPress={this.mysubmit.bind(this)}>
                <Text style={{ color: '#fff', alignItems: 'flex-end' }}> SUBMIT </Text>
            </TouchableOpacity>
            <Image
                style={{ width: 250, height: 200 }}
                source={require('../myimage/durian.jpg')}

            />
            {
                routes.map(e => (
                    <TouchableOpacity style={styles.link} onPress={_ => this.navigate(e.route)}>
                        <Text style={{ fontSize: 14 }}>{e.title}</Text>
                    </TouchableOpacity>
                )
                )
            }
        </View>
    )

}

1 个答案:

答案 0 :(得分:0)

一种方法可能是在类似这样的组件上声明一个实例变量

myComponent{
    constructor(props){
        this.valToBeReturned;
    }
}

然后,在内部函数中,可以使用所需的值对其进行初始化:

theFunction(user=>{
    this.valToBeReturned = getdata.val().User //for example
})

通过这种方式,您可以在this.valToBeReturned上获得所需的值。