169 похожих чатов

Доброй ночи, нужна помощь с фильтрацией, у меня есть массив

данных, который приходит с сервера, я его храню в useState, по этому массиву делаю фильтрацию, но проблема в том, что если я нажимаю на другой фильтр, фильтрация происходит уже с массивом из первой фильтрации. Что можно сделать в этом случае ?

16 ответов

2 просмотра

Просто не нужно мутировать стейт при фильтрации. Можно сварганить класс, принимающий на вход оригинальный массив.

Клади в стейт признак фильтрации, а не результат фильтрации. Саму фильтрацию производи в момент рендера. const result = state.filter(…) return <> {result.map(…)} </>

А класс зачем?

Инкапсуляция логики - это хорошо

Den Pol
Инкапсуляция логики - это хорошо

const result = useMemo( () => state .filter(filterBy(type)), [state, type] ) return <> {result.map(…)} </>

Ivan 🧑‍🚀
А класс зачем?

Человек познает мир😄

Ivan 🧑‍🚀
const result = useMemo( () => state .filter(fil...

Тогда у тебя логика в компоненте

У меня функция filterBy объявлена в отдельной библиотеке, описывающей бизнес-логику на языке доменных терминов, сгенерированная из деклараций, подобранных опытными системными аналитиками

Ivan 🧑‍🚀
У меня функция filterBy объявлена в отдельной библ...

Ну если опытными аналитиками, то ладно)

Den Pol
Ну если опытными аналитиками, то ладно)

Так есть ещё аргументы в пользу классов (в конкретно этой задаче), кроме несостоятельной инкапсуляции (которая и без классов вполне себе работает через функции)?

Ivan 🧑‍🚀
Так есть ещё аргументы в пользу классов (в конкрет...

В любом решении есть минусы, смысл про них спорить?

Den Pol
В любом решении есть минусы, смысл про них спорить...

Да я ж не спорю — искренне недоумеваю, зачем там класс

Ivan 🧑‍🚀
Так есть ещё аргументы в пользу классов (в конкрет...

Могу пример привести. Много букв. Охота читать?

Den Pol
Могу пример привести. Много букв. Охота читать?

Много букв, чтобы отфильтровать список? Не, спасибо. Не люблю многословность, классы тоже ею страдают

Похожие вопросы

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
я имею в виду официально интегрированный в телегу? в том плане что не сливает переписку с пользователем?
Andrey
9
Кто-нибудь решал проблему с автоматическим скроллингом к выбранной ячейке в TDBGrid в Lazarus? Проблема в том, что есть допустим 3 столбца, третий столбец виден наполовину, вк...
Дмитрий Логинов
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Чорт! Чорт! Чорт! Стала ставить через GetIt (написано же, что ручками не рекомендуется) Сломалось на дублировании моей TSkLabel. Чтож мне ее по всем проектам переименовывать в...
Катерина Свиридова
7
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
Карта сайта