alex4answ
@alex4answ

Как сделать сортировку данных из redux?

Добрый день, есть данные - "Дома" и "История Домов".

В компонент - контейнере (HousesListContainer) я селектором получаю и формирую (объединяю) эти данные.
Далее я их передаю в глупый компонент (HousesList) в качестве props.
HousesList - простая таблица, с сортировкой по столбцам.

Данные для сортировки (ключ и направление) хранить в redux store не нужно.
Принимаю решение - хранить данные сортировки (ключ и направление) в локальном state компонента (HousesList).

Но тут я сталкиваюсь с такой проблемой, как мне обработать (отсортировать) данные которые пришли в props и отправить на рендер?

Пока знаю только 1 метод - переданные данные в props сохранить в локальном состоянии и уже с этими данными работать.

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

Думаю можно как-то упростить все и использовать селектор, который будет сортировать данные.

Как правильно решают подобные задачи?
  • Вопрос задан
  • 758 просмотров
Решения вопроса 1
vovaspace
@vovaspace
Frontend Engineer
Так а в чем проблема-то? Берёте массив из пропсов и сортируете.

const HousesList = (props) => {
  const { items } = props;

  const [sorting, setSotring] = useState(/* состояние сортировки */);

  const sortedItems = useMemo(
    () => items.slice().sort(/* логика сортировки */),
    [items, sorting],
  );

  /* дальше работаете с sortedItems */
};
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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