renderFooter无法渲染图片
来源:4-1 ListView列表、下拉刷新、上拉加载的基本使用
倚松听花语
2018-11-02
老师,按照视频写的。
renderFooter中的图片没有渲染出来,哪里有问题吗?
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Image,
Navigator,
TouchableOpacity, // 可单击组件
Text,
View,
ListView,
} from 'react-native';
import NavigationBar from './NavigationBar';
var data = {
"result":[
{
"email":"xxx@xxx.com",
"fullName":"xxx"
},
{
"email":"yyy@yyy.com",
"fullName":"yyy"
},
{
"email":"xxx@xxx.com",
"fullName":"xxx"
},
{
"email":"yyy@yyy.com",
"fullName":"yyy"
},
{
"email":"xxx@xxx.com",
"fullName":"xxx"
},
{
"email":"yyy@yyy.com",
"fullName":"yyy"
},
{
"email":"xxx@xxx.com",
"fullName":"xxx"
},
{
"email":"yyy@yyy.com",
"fullName":"yyy"
},
{
"email":"xxx@xxx.com",
"fullName":"xxx"
},
{
"email":"yyy@yyy.com",
"fullName":"yyy"
},
]
}
export default class ListViewTest extends Component {
constructor(props) {
super(props);
const ds = new ListView.DataSource({rowHasChanged:(r1,r2)=>r1!=r2});
this.state = {
dataSourece: ds.cloneWithRows(data.result),
}
}
renderRow(item){
return(<View style={styles.row}>
<Text style={styles.tips}>{item.fullName}</Text>
<Text style={styles.tips}>{item.email}</Text>
</View>);
}
renderSeparator(sectionID, rowID, adjacentRowHighLighted){
return(<View key={Math.random()} style={styles.line}></View>);
}
// TBD
renderFooter(){
// 网络图片需要指定宽和高
return(<Image style={{width:400,height:100}} source={{uri:'http://images.gr-assets.com/hostedimages/1406479536ra/10555627.gif'}}></Image>);
}
render() {
return (
<View style={styles.container}>
<NavigationBar
title="ListViewTest"
/>
<ListView
dataSource={this.state.dataSourece}
renderRow={(item)=>this.renderRow(item)}
renderSeparator={(sectionID, rowID, adjacentRowHighLighted)=>this.renderSeparator(sectionID, rowID, adjacentRowHighLighted)}
renderFooter={()=>this.renderFooter()}
/>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: 'white',
},
tips: {
fontSize: 18,
},
row: {
height: 50,
},
line: {
height: 1,
backgroundColor:'black'
},
});
写回答
1回答
-
CrazyCodeBoy
2018-11-05
renderFooter是中的Image是可以渲染出来的,你不是你的姿势不对,你上拉试一下:
另外,发现你在用Math.random()做key,key={Math.random()} ,random()生成的是随机数,无法保证多次调用数据的唯一性的,所以最好能使用个唯一的id来作为key哈。
00
相似问题