@selbi

Как создать фильтр товаров на react, если фильтр и товары выводястя в разных компонентах?

Уважаемые знатоки react+redux, в процессе изучения react столкнулась с проблемой, и не понимаю как вообще такое можно сделать, помогите пожалуйста. Суть проблемы: используется react, redux и react-router, "главный" компонент (App) выводит остальные компоненты вот так:
export default function App() {
  return (
    <BrowserRouter>
    <div>
        {/* Тут фильтры в сайдбаре */}
        <Filter />

        <Switch>
            {/* а тут в ProductsContainer выводятся сами товары */}
            <Route exact path="/" component={ProductsContainer} />
        </Switch>
    </div>
    </BrowserRouter>
  )
}


Вопрос: как при выборе характеристик в фильтре, отфильтовать товары в другом компоненте?
Нагуглила решение без использования роутера, что можно "связать" компоненты товаров и фильтров через родительский компонент, но вот решение с роутером не могу найти. Прошу знающих направить в правильное русло, что можно почитать по теме, и вообще, насколько правильный у меня подход, быть может есть более адекватное решение.
  • Вопрос задан
  • 2517 просмотров
Решения вопроса 1
maxfarseer
@maxfarseer
https://maxpfrontend.ru, обучаю реакту и компании
Вам нужно хранить состояние фильтров в редьюсере (или редьюсерах), и затем в компонентах подписываться на эти "кусочки" с помощью mapStateToProps. Вот и все)

Суть Redux как раз в том, что у вас есть единое состояние всего вашего проекта, и где бы вы ни были (через роутер или без) - вы можете просто приконнкектиться к стору (connect) и вытащить нужные данные через mapStateToProps
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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