⊗jsrxPmATSL 56 of 57 menu

Redux에서 판매자 목록 표시하기

지난 강의에서 주요 내용을 마쳤습니다. 이제 thunk를 사용하여 서버에서 상품 목록을 가져오고 새 상품을 서버에 저장할 수 있습니다. 이제 판매자에 대해 알아보겠습니다. 우리는 판매자 데이터도 받고 있습니다. 판매자 목록을 위한 별도의 페이지를 만들어 보겠습니다.

상품 애플리케이션을 열고, 그 안에 있는 sellers 폴더를 확인합니다. 이 폴더에 SellersList.jsx 파일을 생성합니다. 여기서는 useSelector, Link 및 나중에 sellersSlice.js에 작성할 selectAllSellers 코드를 사용할 것입니다:

import { useSelector } from 'react-redux' import { Link } from 'react-router-dom' import { selectAllSellers } from './sellersSlice'

다음으로 SellersList를 생성합니다. 여기서는 useSelector 훅을 사용하여 모든 판매자를 가져온 다음, map 루프를 사용하여 판매자 목록을 위한 마크업을 생성합니다. 각 판매자 이름은 해당 상세 페이지로 연결됩니다. 마지막으로 제목과 생성된 목록이 포함된 마크업을 반환합니다:

export const SellersList = () => { const sellers = useSelector(selectAllSellers) const sellersToRender = sellers.map((seller) => ( <li key={seller.id}> <Link to={`/sellers/${seller.id}`}>{seller.name}</Link> </li> )) return ( <div> <h2>Sellers:</h2> <ul>{sellersToRender}</ul> </div> ) }

그런 다음 sellersSlice.js 파일로 이동하여 productsSlice.js의 셀렉터와 유사하게 리듀서를 내보낸 후 파일 끝에 두 개의 셀렉터를 생성합니다:

export const selectAllSellers = (state) => state.sellers export const selectSellerById = (state, sellerId) => state.sellers.find((seller) => seller.id === sellerId)

이제 목록 페이지에 대한 라우트를 설정해야 합니다. 이를 위해 App.jsx 파일을 열고 자식 라우트 배열인 children에 객체를 하나 더 추가합니다 (SellersList 컴포넌트를 임포트하는 것을 잊지 마세요):

{ path: '/sellers', element: <SellersList />, },

메뉴의 'Sellers' 링크가 작동하도록 하려면, root.jsx 파일로 이동합니다(오랜만이네요...). a 태그를 NavLink 요소로 바꿉니다:

<NavLink to="/sellers" end> Sellers </NavLink>

마지막으로, 메뉴에서 활성 링크가 강조 표시되고 현재 위치한 페이지를 알 수 있도록, index.css에 스타일을 추가합니다:

nav a.active { color: purple; }

애플리케이션을 실행해 보겠습니다. 이제 메뉴의 'Sellers'를 클릭하여 판매자 페이지에 들어갈 수 있습니다. 물론 먼저 메뉴의 'Products'를 클릭해야 상품이 로드됩니다. 다음 강의에서는 각 판매자에 대한 개별 페이지를 만들고, 이것으로 Redux에 관한 이 학습서를 마치겠습니다.

학생 관리 애플리케이션을 엽니다. 강의 자료를 학습한 후, teachers 폴더에 TeachersList.jsx 파일을 생성합니다. 이 컴포넌트를 사용하여 교사 목록을 표시할 것입니다. 필요한 컴포넌트와 훅을 임포트합니다.

TeachersList 컴포넌트의 코드를 작성합니다. 여기서 모든 교사를 가져오고 교사 목록 teachersToRender를 만듭니다. 이 목록의 각 줄에는 성과 이니셜, 그리고 괄호 안에 담당 과목이 표시되도록 합니다. 각 성명은 해당 교사의 개별 페이지로 연결되는 링크가 되도록 합니다. 그런 다음 컴포넌트 코드 마지막에 제목과 생성된 목록이 포함된 마크업을 반환합니다.

teachersSlice.js 파일 끝에 강의에서 보여준 것처럼 selectAllTeachersselectTeacherById라는 두 개의 셀렉터 함수를 생성합니다.

App.jsx에서 교사 페이지를 위한 자식 라우트를 하나 더 연결합니다.

root.jsx 파일의 메뉴에서 'Teachers'에 대한 a 태그를 강의에서 보여준 것처럼 NavLink로 바꿉니다. index.css에 스타일을 추가하여 메뉴에서 활성 링크가 강조되도록 합니다.

한국어
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақКыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부