Теперь, когда ваш вопрос более понятен, я могу предложить вам использовать что-то вроде <SectionList>
(см. doc ).Чтобы использовать SectionList
, вы должны передать ему секционированный массив.При размещенной вами структуре данных я бы сгруппировал элементы по дням:
const array = [
{ day: "3/14", name: "item1" },
{ day: "3/14", name: "item2" },
{ day: "3/14", name: "item3" },
{ day: "3/15", name: "item4" }
];
const grouped = array.reduce(
(result, item) => ({
...result,
[item["day"]]: [...(result[item["day"]] || []), item]
}),
{}
);
const sectionedList = Object.keys(grouped).map(item => ({
title: item,
data: grouped[item]
}));
, что даст вам следующую структуру:
[
{
title: "3/14",
data: [
{ day: "3/14", name: "item1" },
{ day: "3/14", name: "item2" },
{ day: "3/14", name: "item3" }
]
},
{
title: "3/15",
data: [{ day: "3/15", name: "item4" }]
}
];
Теперь вы можете использовать ее в <SectionList>
,например:
<SectionList
renderItem={({item, index, section}) => {...}}
renderSectionHeader={({section: {title}}) => (
<Text style={{fontWeight: 'bold'}}>{title}</Text>
)}
sections={sectionedList}
keyExtractor={(item, index) => item + index}
/>
Таким образом, вы можете правильно настроить все.
Я действительно надеюсь, что это может помочь вам!