gpt4 book ai didi

react-native - 将最后一个元素添加到 FlatList 的末尾

转载 作者:行者123 更新时间:2023-12-04 04:13:16 25 4
gpt4 key购买 nike

我正在尝试实现以下目标,而除最后一个之外的所有图像都是来自数组的普通图像。

Images

目前这是 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,它会将它呈现在一个全新的行中。

有谁知道解决这个问题的有效方法?

最佳答案

由于我认为我不够清楚,我将尝试使用以下示例代码正确解释我的想法:

<FlatList
data={[...images, { plusImage: true }]}
numColumns={3}
renderItem={({ item }) => {
if (item.plusImage) {
return (
<View
style={[
StyleSheet.actionUploadedPictureFrame,
{ height: PIC_HEIGHT, width: PIC_WIDTH }
]}
>
<Image source={require("../../../images/add-icon.png")} />
</View>
);
}
return (
<Image
style={[
StyleSheet.actionUploadedPictureFrame,
{ height: PIC_HEIGHT, width: PIC_WIDTH }
]}
source={{ uri: item.url }}
/>
);
}}
keyExtractor={(item, index) => index.toString()}
/>;

我不知道直接在 data 中连接这样的数据数组是否是最佳实践prop,但您始终可以选择在 render 方法中更早地声明它。
让我知道这是否符合您的要求。

关于react-native - 将最后一个元素添加到 FlatList 的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54316555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com