У меня есть динамический список c с текстом (теги, например), отображаемым в строке с помощью 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',
},
}