Фильтрация большого количества данных react/redux?

Добрый день! Скажите пожалуйста как лучше отфильтровать данные на react/redux, если их около 2000 объектов, каждые 6 секунд приходят новые и выводятся на карте и в сайдбаре.
На данный момент когда начинаю фильтровать, текст в інпуте зависает.
Вопрос
1. Стоит ли останавливать подгрузку данных при change input?
2. Как именно реализовать этот фильтр, если надо фильтровать массив по названию которое далеко в объекте.
Пример массива
arr = {12: {name: "fddffdt", ...}, 13: {name: "dfgmm cvbnvbn ", ...}, 14: {name: "uyuyu", ...}}

такая реализация не работает
state.data.filter(item => Object.values(item)[0].name.indexOf(action.text))

Буду благодарен за помощь!
  • Вопрос задан
  • 704 просмотра
Пригласить эксперта
Ответы на вопрос 3
SPAHI4
@SPAHI4
реактовцы - это не девы, а прокидыватели пропсов
Использовать throttle/debounce
Ответ написан
Комментировать
@vaskadogana
Frontend developer
я так делаю
return searchValue.indexOf(searchQuery) !== -1;
Ответ написан
Комментировать
@197291
Я бы предложил несколько способов оптимизации.
1) Использовать стандартный цикл for с кэшированием длины массива. Вид ухудшится, но по скорости выиграете.
2) Можно использовать web worker. Web APi. Почитайте, может в вашем конкретном случае поможет.
3) Можно заменить название свойств объектов на имена объектов, это можно осуществить на сервере, попросить back чуть менять структуру объекта.

P.S. У вас в примере не массив, а объект.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы