Я использую angular 4 + angular material + ngrx с действиями / эффектами / редукторами. У меня есть массив данных о клиентах (имя, адрес, штат США).
В моем компоненте есть мат-таблица всех клиентов и раскрывающееся меню с 50 состояниями. Я использую асинхронный конвейер в своем компоненте HTML, и полный список клиентов отображается идеально.
Теперь, когда пользователь выбирает состояние, я хочу отфильтровать таблицу и отобразить только клиентов в этом состоянии, не возвращаясь на сервер, поскольку у меня уже есть все клиенты в магазине.
Какой шаблон проектирования лучше всего подходит для этого? Могу ли я отфильтровать таблицу в компоненте, не затрагивая магазин? Это вообще возможно?
Или мне нужно отправить действие и выполнить фильтр в редукторе? Если это лучший подход, я полагаю, мне придется хранить в магазине 2 массива: один, содержащий ВСЕХ клиентов, и один, который будет отфильтрованным массивом, который я бы привязал к компоненту. Это кажется более чистым и более соответствующим шаблону, но требует дублирования потенциально большого набора данных о клиентах.
Приветствуется некоторый образец кода (или ссылка) рекомендуемого подхода или аналогичного решения.
Спасибо