【问题标题】:React native How to return a value from a function to the componentReact Native 如何从函数返回值给组件
【发布时间】:2019-05-30 16:40:47
【问题描述】:

我从 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>
    )

}

【问题讨论】:

  • 使用promise解析函数

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


【解决方案1】:

一种方法是在组件上声明一个实例变量,例如

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

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

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

这样,你在函数作用域之外的 this.valToBeReturned 上就有了你想要的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多