Задать вопрос
mrerberg
@mrerberg
Yep

Каким способом лучше отфильтровать данные для компонента?

Всем привет!

Такая ситуация:
Есть три ссылки на страницу различных товаров, к примеру: Товар1, Товар2, Товар3. Использую react-router и туда передаю один и тот же компонент для отрисовки - . Ему в props прокидываю пришедшие данные из БД (MongoDB), список всех товаров соответственно. Когда пользователь переходит на страницу 'Товар1', то компонент должен отобразить все товары, относящиеся к данной категории.
Была идея по реализации: каждому товару в бд добавить поле "type" и сравнивать его с href-ом страницы в отдельной функции, которая вернет новый props и уже отфильтрованный props передать компоненту. Но меня мучает мысль, что есть более изящные способы. Если есть, то какие?

Спасибо!
  • Вопрос задан
  • 81 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
Krasnodar_etc
@Krasnodar_etc
fundraiseup
С mongo у меня было примерно так:
1) В БД создаётся коллекция, условно, "Категории товаров", где лежат ваши "Товар1", ... со всеми необходимыми параметрами + у каждого свой id, который монга генерирует. Кстати, url-ы тоже тут хранить удобно
2) В коллекции с товарами у каждого товара действительно появляется type , только там лежит id нужного объекта из "Категории товаров"
3) При переходе на страницу "Товар1" на бэкенде в запросе к БД передаются параметры для фильтрации (те же данные из url) . Не надо тянуть такие фильтрации на фронт. Зачем вам получать из БД лишние данные?
4) Фронт просто отображает всё, что пришло с бэка

ИМХО, это наиболее правильное решение, но при желании его можно как угодно упрощать, главная идея - фильтрация должна происходить на уровне БД или бэкенде, но никак не на фронте
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 80 000 до 120 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽