【发布时间】:2020-08-04 18:37:54
【问题描述】:
我有一个动态列表,其中包含使用 flex-wrap 连续呈现的文本(例如标签)。我想在所有项目之间添加一个项目符号分隔符,每行中的最后一个除外。
例如,假设我有列表['apple', 'peach', 'orange', 'watermelon', 'pear']。根据屏幕大小,我希望它们以行和小子弹的形式呈现。
苹果•桃•橙
西瓜•梨
如您所见,将有两行,并且仅在一行的元素之间存在项目符号。现在,我可以使用index 来检查它是否是列表中的最后一个元素
arr.map((i, index) => index < arr.length-1 && <View>...</View>) 但我在第一行的最后一个元素之后得到了一个项目符号
苹果•桃•橙•
西瓜•梨
这不是我想要的。现在假设我有更长的项目名称,并且第一行只呈现了其中两个,我想要相同的效果,最后没有项目符号。
谁能帮我检测一行中的最后一个元素。
这是我的代码示例。
<View style={styles.section}>
{
tags.map((tag, index) => (
<View key={tag.id} style={styles.tagItem}>
<Text style={styles.tagTitle}>{tag.title}</Text>
{index < tags.length - 1 && <Text>•</Text>}
</View>
))
}
</View>
这是我的样式对象:
{
section: {
flexDirection: 'row',
flexWrap: 'wrap',
},
tagItem: {
paddingHorizontal: 5,
flexDirection: 'row',
},
}
【问题讨论】:
标签: javascript react-native flexbox react-native-flexbox