Сортировка массива объектов, извлеченных из базы данных, представленных в нативной версии Flatlist React - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть этот массив объектов, который я хочу отсортировать, когда я отображаю их на экране, сортирую их по типу. Вот массив:

Array [
  Object {
    "lien": "get_praticien",
    "name": "tag service  centre 2",
    "type": "Tag",
  },
  Object {
    "lien": "get_praticien",
    "name": "Ambulance",
    "type": "Acte",
  },
  Object {
    "lien": "get_praticien",
    "name": "Réadaptation Fonctionnelle",
    "type": "speciality",
  },
  Object {
    "lien": "get_praticien",
    "name": "Infirmité Motrice",
    "type": "Tag",
  },......

, поэтому я хочу, чтобы объекты, которые иметь тип: «специальность», чтобы быть на вершине плоского списка, а другие после в любом порядке. Я использую плоский список:

<FlatList 
                data={this.state.dataSource}
                keyExtractor={item=> { return item.id.toString()}}
                renderItem= {({item})=> <MedItem Med={item}  />} />

Буду признателен за ваши ответы

1 Ответ

2 голосов
/ 13 апреля 2020

используйте функцию сортировки для сортировки списка данных перед рендерингом. Также вы можете отсортировать их на стороне сервера, если у вас несколько страниц данных.

const test = [
  {
    "lien": "get_praticien",
    "name": "tag service  centre 2",
    "type": "Tag",
  },
  {
    "lien": "get_praticien",
    "name": "Ambulance",
    "type": "Acte",
  },
  {
    "lien": "get_praticien",
    "name": "Réadaptation Fonctionnelle",
    "type": "speciality",
  },
  {
    "lien": "get_praticien",
    "name": "Infirmité Motrice",
    "type": "Tag",
  },
  {
    "lien": "get_praticien",
    "name": "Infirmité Motrice",
    "type": "speciality",
  },
  {
    "lien": "get_praticien",
    "name": "Ambulance",
    "type": "Acte",
  },
  {
    "lien": "test",
    "name": "test Motrice",
    "type": "speciality",
  },
]

console.log(test.sort((a,b) =>  a.type === 'speciality' ? -1 : 1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...