Javascript 如何从react native flatList中的另一个函数中获取值?
我正在尝试过滤被阻止用户的帖子。最好的方法是什么?由于状态更新使应用程序滞后。这就是我处理问题的方式: 我做了一个函数来检查用户是否被阻止Javascript 如何从react native flatList中的另一个函数中获取值?,javascript,reactjs,firebase,react-native,firebase-realtime-database,Javascript,Reactjs,Firebase,React Native,Firebase Realtime Database,我正在尝试过滤被阻止用户的帖子。最好的方法是什么?由于状态更新使应用程序滞后。这就是我处理问题的方式: 我做了一个函数来检查用户是否被阻止 checkBlocked = async userId => { try { let snapshot = await firebase.database().ref('Blocked/' + firebase.auth().currentUser.uid).orderByChild('uid').equalTo(userId).once('v
checkBlocked = async userId => {
try {
let snapshot = await firebase.database().ref('Blocked/' + firebase.auth().currentUser.uid).orderByChild('uid').equalTo(userId).once('value')
return snapshot.exists();
}
catch(error) {
return false;
}
}
然后在flatlist中,我试图过滤被阻止的用户的帖子
<FlatList
inverted
extraData={this.state.blocked}
data={this.state.arrData}
keyExtractor={item => item.key}
renderItem={({ item }) => {
this.checkBlocked(item.id).then(val => this.setState({blocked: val}));
if(this.state.blocked == true){
return (
//something )
}
else {
return (
//something
)}
}}
/>
item.key}
renderItem={({item})=>{
this.checkBlocked(item.id).then(val=>this.setState({blocked:val}));
if(this.state.blocked==true){
返回(
//(某物)
}
否则{
返回(
//某物
)}
}}
/>
您不能像这样从render方法启动异步操作(例如从Firestore加载数据)。你应该:
请参见我的答案,以获取示例:您好,谢谢您的回答。我是这方面的新手,你能给我一些关于语法的指导吗?提前感谢。我对链接问题的回答提供了一个工作示例。嘿@VaibhavDagar。链接中的示例有什么进展吗?如果我的答案有用,请单击向上投票按钮(▲) 如果它回答了您的问题,请单击复选标记(✓) 接受它。这样别人就会知道你已经得到了(足够的)帮助。也请参见