You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native 中如何对 Flatlist 渲染的数据实现最近7天筛选

实现步骤

1. 最近7天数据筛选逻辑

先对原始数据源做过滤,代码示例如下:

// 计算7天前的时间戳
const getSevenDaysAgo = () => {
  const now = new Date()
  return now.setDate(now.getDate() - 7)
}

// 过滤得到最近7天的数据,按你实际的时间字段名调整createTime即可
const filteredList = rawList.filter(item => {
  const itemTime = new Date(item.createTime).getTime()
  return itemTime >= getSevenDaysAgo()
})

2. 绑定到FlatList组件

把过滤后的数据直接传给FlatList的data属性即可,原有渲染逻辑不需要改动:

<FlatList
  data={filteredList}
  renderItem={({item}) => <你的列表项组件 item={item} />}
  keyExtractor={item => item.id.toString()}
  // 其他原有FlatList配置保持不变
/>

可选扩展:支持切换筛选范围

如果需要支持「全部/最近7天」切换,加一个状态控制即可:

const [filterType, setFilterType] = useState('all')

// 用useMemo缓存过滤结果,避免不必要的重计算
const showList = useMemo(() => {
  if (filterType === '7days') {
    const sevenDaysAgo = new Date().setDate(new Date().getDate() -7)
    return rawList.filter(item => new Date(item.createTime).getTime() >= sevenDaysAgo)
  }
  return rawList
}, [rawList, filterType])

将showList传给FlatList的data属性,切换筛选类型时修改filterType的值,列表会自动刷新。

参考示意图

内容的提问来源于stack exchange,提问作者Khusni Ja'far

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 11:12:02