【发布时间】:2019-01-22 21:16:01
【问题描述】:
我正在尝试实现以下目标,而除最后一个之外的所有图像都是来自数组的正常图像。
目前这是 FlatList 的代码:
<FlatList
data={images}
numColumns={3}
// ListFooterComponent={
// <View style={[StyleSheet.actionUploadedPictureFrame , {height: PIC_HEIGHT, width: PIC_WIDTH}]}>
// <Image source={require('../../../images/add-icon.png')} />
// </View>}
renderItem={ ({item, index}) => index == images.length -1 ?
<View style={{flexDirection: 'row'}}>
<Image style={[StyleSheet.actionUploadedPictureFrame , {height: PIC_HEIGHT, width: PIC_WIDTH}]} source={{uri: item.url}} />
<View style={[StyleSheet.actionUploadedPictureFrame , {height: PIC_HEIGHT, width: PIC_WIDTH}]}>
<Image source={require('../../../images/add-icon.png')} />
</View>
</View>
: <Image style={[StyleSheet.actionUploadedPictureFrame , {height: PIC_HEIGHT, width: PIC_WIDTH}]} source={{uri: item.url}} /> }
keyExtractor={(item, index) => index.toString()}
/>
长话短说,将数组中的图片呈现在一个 3 列的表格中,并检查列表中的最后一张图片,除了呈现图片之外,它还呈现这个加号。
但是,如果列表中的元素数量是 3 的倍数,这肯定会出现某种错误,因为加号很可能不在屏幕上。 如果我使用 ListFooterComponent,它会将它呈现在一个全新的行中。
有人知道有效的解决方法吗?
【问题讨论】:
-
如何将其添加为图像数组的真实元素并在 renderItem 属性内的条件下处理其渲染?
标签: react-native react-native-flatlist