Добрый день, есть данные - "Дома" и "История Домов".
В компонент - контейнере (HousesListContainer) я селектором получаю и формирую (объединяю) эти данные.
Далее я их передаю в глупый компонент (HousesList) в качестве props.
HousesList - простая таблица, с сортировкой по столбцам.
Данные для сортировки (ключ и направление) хранить в redux store не нужно.
Принимаю решение - хранить данные сортировки (ключ и направление) в локальном state компонента (HousesList).
Но тут я сталкиваюсь с такой проблемой, как мне обработать (отсортировать) данные которые пришли в props и отправить на рендер?
Пока знаю только 1 метод - переданные данные в props сохранить в локальном состоянии и уже с этими данными работать.
Но такой подход мне кажется крайне костыльным, тк оригинальные данные хранятся в redux store, селектором я получаю нужные мне данные, компоную их, передаю в презентационный компонент, там он сохранит эти данные в локальный стейт и уже будет с ними работать.
Думаю можно как-то упростить все и использовать селектор, который будет сортировать данные.
Vladimir Lewandowski тоже самое сейчас но сортированные элементы храню не в memo, а в локальном состоянии, и сортирую в useEffect где зависимости - состояние сортировки
alex4answ, с юзеффектом вполне рабочее решение, просто в этом случае больше useMemo подходит.
С копированием состояние редакса в useState есть кейс, когда, например, нужно получить состояние формы из редакса, что-то менять локально в ней, а по onSubmit отправить обратно в редакс.
alex4answ, бред я сказал, забудьте. Данные конечно не могут потеряться.
Дока гласит, что мемоизировать значения нужно, когда в хуке написана сложная логика (типа сортировки массива). Видимо поэтому правильнее использовать useMemo, а не useEffect