如何从数组中添加 React Native 中的 SectionList 的部分

How to add SectionList 's sections in React Native from an array

我有一组名为电影的对象 (const movies = movie[])。电影具有以下属性:

  movie: {
    name: string;
    description: string;
    date: Date;
    duration: number
  }

我想使用 RN SectionList 组件,制作来自 movie.date(日)的部分:

**20 june 2020:**

Movie name | description | duration

Movie name | description | duration

**18 april 2020:**

Movie name | description | duration

Movie name | description | duration

...

如何制作该部分以及如何按日期对电影数组进行分组?我正在使用 lodash,但是 const groupedMovies = groupBy(movies, movie => movie.date); returns 是一个集合而不是一个数组。

参考:https://reactnative.dev/docs/sectionlist

因此您需要将数据从格式

转换为
{
   "18 april 2020": [{...}, {...}, {...}],
   ...
}

进入格式

[
   { "title": "18 April 2020", "data": [{...}, {...}, {...}] },
   ...
]

您可以按如下方式进行转换

const groupedMovies = groupBy(movies, movie => movie.date);
let data = Object.entries(groupedMovies).map(([key, value]) => ({ title: key, data: value }))

或使用 lodash 的地图

const groupedMovies = groupBy(movies, movie => movie.date);
let data = map(groupedMovies, (value, key) => ({ title: key, data: value }))