Группировка элементов Flatlist по дате - PullRequest
0 голосов
/ 30 марта 2020

Интересно, как я могу сгруппировать элементы Flatlist по датам в React Native?

Я имею в виду, я пытаюсь создать что-то вроде системы группировки WhatsApp на экране разговора.

На экране чата WhatsApp отделяет сообщения с датой, но этот разделитель виден только в определенных случаях, таких как, Сообщения вчера, сообщения с прошлой недели, прошлого месяца и т. Д. c.

Как я могу Есть ли у такой системы идеи?

Пример: Вот пример

ПРИМЕЧАНИЕ: мне удалось сделать это по-другому, получив дату элемента и с Индекс элемента, получающий также дату предыдущего элемента из состояния и проверяющего с моментом. js, если дата предыдущего элемента совпадает с датой текущего элемента, то не визуализируйте ничего, кроме этого компонента отображения даты.

Я делаю эту проверку следующим образом,

if (index > 0) {
            previousDate = moment(this.state.messages[index - 1].created_at).format(
                "L"
            );
        }

и что же это делает до сих пор? он смотрит, находится ли индекс во втором элементе, идет к первому элементу this.state.messages [index - 1] и получает его дату ...

он работает так, но есть проблема, для Например, есть 2 сообщения того же дня, что и первые 2 элемента в плоском списке, его проверка начинается со второго элемента, так как индекс> 0, если я не добавляю этот элемент управления, возникает ошибка, вызванная его отображением первого элемента. до этого нет элемента, this.state.message[index -1] выдает ошибку, и из-за этого она помещает дату поверх второго элемента вместо первого элемента.

Я не знаю, как решить эту проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...