Javascript 反应本机ListView renderRow异步

Javascript 反应本机ListView renderRow异步,javascript,listview,react-native,Javascript,Listview,React Native,我正在尝试使用ListView来处理需要为每个项目生成缩略图的项目,我已经尝试了几次,但似乎都没有成功。下面是一个代码示例: renderRow(rowData,sectionID,rowID){ base.child(`${rowID}/avatar`) .once('value',(snapshot)=>{ let avatars = this.state.avatars; avatars[rowID] = {uri: snapsho

我正在尝试使用ListView来处理需要为每个项目生成缩略图的项目,我已经尝试了几次,但似乎都没有成功。下面是一个代码示例:

renderRow(rowData,sectionID,rowID){
    base.child(`${rowID}/avatar`)
      .once('value',(snapshot)=>{
        let avatars = this.state.avatars;
        avatars[rowID] = {uri: snapshot.val()};
        this.setState({
          avatars : avatars
        });
      },(err)=>{console.log(err)});
    return (
      <View>
          <Image source={this.state.avatars[rowID]} />
          <Text >{rowData.screenName}</Text>
      </View>
    )
  }
renderRow(行数据、节ID、行ID){
base.child(`${rowID}/avatar`)
.once('值',(快照)=>{
让化身=this.state.avatars;
化身[rowID]={uri:snapshot.val()};
这是我的国家({
化身:化身
});
},(err)=>{console.log(err)};
返回(
{rowData.screenName}
)
}
因此,问题是在图像准备就绪时呈现listview项。我还尝试在firebase调用返回后返回组件,但出现错误:

必须返回有效的组件

base.child(`users/${rowData.userId}/attrs/avatar`)
.once('值',(快照)=>{
让阿凡达;
if(snapshot.val()==null){
avatar=require('../assets/images/avatar.png');
}否则{
化身={uri:snapshot.val()};
}
返回(
{rowData.content}
)
},(err)=>{console.log(err)};

可能有一些语法错误。我只是为了不必要的细节把代码分了条带。但我想这给了我想要实现的想法

我现在有一段时间也有同样的问题。你有没有找到一个解决方案,甚至是一个有用的网站?谢谢@Diogo BarrosoI我在这方面太麻烦了。希望看到您的解决方案@Diogo
base.child(`users/${rowData.userId}/attrs/avatar`)
   .once('value',(snapshot)=>{
     let avatar;
     if(snapshot.val() == null){
       avatar = require('../assets/images/avatar.png');
     }else{
       avatar = {uri: snapshot.val()};
     }
  return (
   <View>
       <Image source={this.state.avatars[rowID]} />
       <Text>{rowData.content}</Text>
   </View>
  )
   },(err)=>{console.log(err)});