我正在尝试使用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)});
可能存在一些语法错误。我只是将代码条带化为不必要的细节。但我想这可以让我知道我想要完成的任务。