Я использовал повторный выбор для выбора ненормализованных (сопоставленных) данных для передачи в плоский список. Основная проблема в том, что предметы «стабильны».
Звездное значение находится внутри нормализованных данных, поэтому при нажатии на звездочку все будет пересчитано, что замедляет работу приложения.
Итак, мой вопрос: как я могу справиться с нормализацией данных, когда ваши нормализованные данные часто меняются?
Решение, которое я нашел:
1) Убрать интерактивные данные?
Но теперь мне нужно разделить данные при запуске и при каждом получении данных. Это медленно, но если вы используете «загрузчик» (ActivityIndicator / обновление индикатора), это не будет настоящей проблемой.
Так что теперь я могу денормализовать при повторном выборе, и срок действия кэша истечет только при получении данных: это хорошо.
2) Использовать селектор только для массива идентификаторов, не касаясь нормализованных данных?
Нет необходимости отображать, если я могу позволить flatlist справиться с этим.
Но для этого потребуется передать как массив, так и нормализованные данные в плоский список, используя массив для данных и нормализованные как экстраданные.
Но теперь, я не уверен, есть тонна данных, переданных каждому элементу плоского списка.
3) Не использовать relect, но, возможно, разбить данные на страницы?
Теперь мне нужно отобразить только несколько элементов, которые увеличиваются с помощью onEndReach.
возвращаемый массив при нажатии на звездочку будет маленьким, поэтому обычно быстрый.
Где, по-моему, все еще нужно повторно выбирать? сортировка данных
На нормализованном источнике данных сортировка не является легкой. (первая карта, затем сортировка).
Но трудно без использования повторного выбора для денормализации.
Есть идеи, по какому пути идти? Лучшие решения?
пс. извините за мой плохой английский, спасибо