javascript - React Native 如何将值从函数返回给组件
问题描述
我从 firebase 数据库中获得了 2 个用户的身份验证,但是如何从函数返回一个值,或者对经过身份验证的用户有任何其他解决方案
firebase.auth().onAuthStateChanged(user => { if (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>
)
}
解决方案
一种方法可能是在组件上声明一个实例变量,例如
myComponent{
constructor(props){
this.valToBeReturned;
}
}
然后,在函数内部,您可以使用所需的值对其进行初始化:
theFunction(user=>{
this.valToBeReturned = getdata.val().User //for example
})
通过这种方式,您在函数范围之外的 this.valToBeReturned 上获得了所需的值。
推荐阅读
- elasticsearch - 弹性多重匹配查询与文档不匹配
- node.js - 将 DataLoader 与 Relay 缓存一起使用
- vba - 如何在宏(Word)中将字母转换为上标?
- django - how does django channels knows that a client has disconnected?
- linux - Linux grep 或查找具有不可打印特殊字符的文件 - 记录分隔符
- maven - 如何修复jenkins上的maven插件错误?
- javascript - Angular 8 中的日期管道
- flutter - 如何根据 Cloud Firestore 中另一个集合中的数据查询一个集合中的数据?
- python - 如何修复“需要至少一个数组来连接”错误?
- bixby - 通过测试胶囊的连接问题