Страница продавца в Redux

Дело осталось за малым. Давайте на данном занятии сделаем последнюю вещь - добавим в наше приложение отдельную страничку для каждого продавца. Здесь будут только уже знакомые вам действия. Приступим.

Откроем наше приложение с продуктами, а в нем папку sellers. Создадим в этой папке файл SellerPage.jsx. Теперь начнем писать код SellerPage для нашего компонента:

export const SellerPage = () => {}

Для начала получим id продавца и по нему найдем объект нужного продавца в слайсе:

export const SellerPage = () => { let params = useParams() const { sellerId } = params const seller = useSelector((state) => selectSellerById(state, sellerId)) }

Далее ниже в коде для SellerPage после получения продавца мы получим все продукты, а затем выберем из них только те, которые выложены данным продавцом:

const productsOfSeller = useSelector((state) => { const allProducts = selectAllProducts(state) return allProducts.filter((product) => product.seller === sellerId) })

А далее из названий выбранных продуктов сформируем список при помощи map. Причем каждое название продукта в этом списке будет ссылкой на страничку этого продукта:

const productNames = productsOfSeller.map((product) => ( <li key={product.id}> <Link to={`/products/${product.id}`}>{product.name}</Link> </li> ))

И в конце кода для SellerPage вернем верстку: заголовок с названием продавца и список продуктов, которые выложил этот продавец:

return ( <div> <h2>Seller: {seller.name}</h2> <ul>{productNames}</ul> </div> )

Конечно же нам еще нужен маршрут для странички продавца. Откроем файл App.jsx и добавим его последним к дочерним маршрутам:

{ path: '/sellers/:sellerId', element: <SellerPage />, },

Не забудьте импортировать необходимые хуки и компоненты в SellersPage.jsx и App.jsx.

Запустим наше приложение, подгрузим продукты, а затем в менюшке слева кликнем по ссылке 'Sellers'. Теперь мы можем зайти на страничку любого продавца, кликнув по его названию, а затем на его страничке увидеть все его продукты. А, кликнув по любому из его продуктов, зайдем на страничку с этим продуктом.

На этом пока все. Мы изучили основы Redux для создания приложения и даже немного глубже. Познакомились с различными полезными инструментами. Желаю вам удачи в создании ваших Redux-приложений!

Откройте ваше приложение со студентами. Изучив материалы урока, в папке teachers создайте файл TeacherPage.jsx. В коде компонента TeacherPage получите объект с нужным учителем и всех студентов данного преподавателя. При помощи map создайте из них список, пусть ФИО каждого студента будет ссылкой на страничку этого студента.

Пусть в возвращаемой верстке у вас будет заголовок с ФИО преподавателя, ниже будет заголовок поменьше - с предметом, который он ведет, а еще ниже список его студентов.

В App.jsx подключите еще один дочерний маршрут для странички с преподавателем.

Запустите ваше приложение и убедитесь, что все работает.



Чат с GPT Компилятор