Я не совсем понимаю, что делает ваше приложение, поэтому мой ответ также будет довольно общим.
Начните с настройки проекта с помощью redux.Вам нужны пакеты redux и реагировать на восстановление.Используйте учебник с официальной страницы.Установите расширения Chrome Redux Dev Tools, чтобы иметь возможность отлаживать и просматривать состояние избыточности.
Затем продолжите рефакторинг ...
Начните с изоляции моделей данных,Вероятно, у вас будет user
и какой-то displayFilter
.Создайте редукторы для них обоих.
Держите всех пользователей в редукторе user
, а текущее состояние фильтра - в displayFilter
.Установите некоторые проверенные данные в качестве состояния по умолчанию.
Объедините настройки фильтрации из displayFilter
и список пользователей из user
на лету в mapStateToProps
.Выполните фильтрацию видимых в данный момент пользователей в mapStateToProps, чтобы ваш компонент получал только пользователей, которые должны быть видимыми.
Затем добавьте некоторые динамические элементы
Каждый раз, когдаПользователь изменяет некоторые настройки фильтрации, отправляет действие с новыми настройками и обрабатывает его в displayFilter
, применяет изменения в хранилище.React-redux автоматически вызывает ваш mapStateToProps
и применяет новый список отфильтрованных пользователей к компоненту и запускает рендеринг.
Дальнейшие действия
Это всего лишь пара подсказоккак начать.Если вы хотите, чтобы ваше приложение было производительным и стабильным, вам следует ознакомиться с концепциями запоминания, перевыбора и библиотек immutable.js.