React Native ListView renderRow async

时间:2016-01-28 07:56:58

标签: javascript listview react-native

我正在尝试使用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>
    )
  }

所以问题是在图像准备好时呈现listview项。我已经尝试在firebase调用返回后返回组件但是我收到错误:

  

必须返回有效的组件

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)});

可能存在一些语法错误。我只是将代码条带化为不必要的细节。但我想这可以让我知道我想要完成的任务。

0 个答案:

没有答案