我有一个对象数组,其中每个对象代表一个rss提要,每个对象都有一个"更新"字段,其值是以毫秒为单位的时间戳,显示上次更新该提要的时间。我需要将这些数据放入 React Native SectionList 中。
我想组织提要,使其看起来类似于Google收件箱对电子邮件进行排序的方式,即按"更新"排序,以便这些部分是"今天","昨天","本周","本月",然后其他所有内容都应该按月份和年份分组。
我已经尝试了许多不同的方法来做到这一点,但最终,我无法正确排序。我最接近的是让 SectionList 渲染出这样排序的东西:[...所有旧的东西,"今天","昨天","本周","本月"]
无论我如何解决这个问题,我似乎都无法按正确的顺序排列。最好的方法是什么?
可能不是最好的方法,但你可以制作 4 个不同的数组。像这样:
let lt1=lt2=lt3=lt4 = [];
myCol.map(item=>{
if (item is today)
lt1.push(item);
if (item is yesterday)
lt2.push(item)
....
})
然后,您可以将所有列表放在渲染图上:
<SectionList
renderItem={({item}) => <ListItem title={item} />}
renderSectionHeader={({section}) => <Header title={section.title} />}
sections={[ // homogenous rendering between sections
{data: lt1, title: 'Today'},
{data: lt2, title: 'Yesterday'},
{data: lt3, title: 'This Week'},
{data: lt4, title: 'This Month'}
]}
/>