• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 React 게시판 라우터 관련 질문드립니다.

라우터 관련 질문드립니다.

  • 이 주제에는 5개 답변, 2명 참여가 있으며 김민성4 년 전에 전에 마지막으로 업데이트했습니다.
6 글 보임 - 1 에서 6 까지 (총 6 중에서)
  • 글쓴이
  • #12845

    김민성
    참가자

    App.js에서 남자카테고리, 여자카테고리를 고르면 해당 Route로 가서 상품을 나열합니다.

    남자,여자 카테고리는  신발의 리스트를 가지는 ShoesList 컨테이너에서 다음과 같이 경우를 나눠서 보여주게 했습니다. 


     

    위의 남자카테고리, 여자카테고리는 <Man/> , <Woman/> 은 각각  신발 Item 화면을 구성하는 ShoesItem을 불러옵니다.

    ShoesItem은 강사님 코드와 똑같습니다.

     

     

    그런데 여기서 문제가 각각의 신발 상품들을 클릭했을 때, 라우터 처리를 어떻게 해야될지 모르겠습니다. 

    애플님은 App.js에서 페이지를 만들고 parmas로 받아 UI 구성을 하셨는데, 저는 해당 상품을 클릭했을 때 해당 상품의 정보를 가진 detail 페이지를 만들어야 합니다. 순서가 잘못됐나요?

    남자카테고리 선택시 -> /manshoes

    여자카테고리 선택시 -> /womanshoes

    페이지에서 상품 선택시 -> /manshoes/3

                  (...)                        -> /womanshoes/4

    요렇게 동작시키려 했습니다.

    처음에 생각한 것은 ShoesItem을 클릭했을때 onClick 이벤트에서 <Route>를 집어 넣는 것이였습니다. 그런데 클릭이벤트가 동작이 되지 않아 실패했습니다.

    2.  ShoesItem을 클릭했을때, <Link>로 이동시키는 건데요 to="/ " 경로값에 어떻게 props를 집어넣어야할지 모르겠습니다. 그리고 페이지가 만들어있지 않은 상태라 아무것도 뜨지 않았습니다.

     

    3. ShoeItem 컴포넌트에 직접 들어가서 onClick 이벤트를 작성해봤습니다. 그래도 동작이 제대로 되지 않습니다. http://localhost:3000/manshoes/3 로 직접 쳐서 들어가도 /manshoes 페이지만 보이네요. 어떻게 해결해야되나요?ㅠㅠ

     

    #12865

    codingapple
    키 마스터

    <Route path="/manshoes"> 이건 어디로 보내는 역할이아니라 어떤 사람이 /manshoes로 접속했을 때 안에있는 html 보여주세요라는 뜻입니다

    그래서 url 이동을 구현하고 싶으면 history.push('/manshoes/0'); 이런 함수를 쓰도록 합시다 

    #12871

    김민성
    참가자

     

     

    애플님 말씀보고 헷갈리는 부분이 정리됐고, 위와 같이 수정했는데  url 이동이 정상적으로 동작하는 것을 확인했습니다.

    그런데 App.js에 Route 설정을 아래와 같이 했는데요. '/manshoes/3' 와 같은 url이면 <About/> 컴포넌트를 불러와야되는거 아닌가요? 왜 자꾸 기존의 '/ manshoes' 에 설정돼있는 기존의 <ShoesList> 가 불러와지는지 모르겠습니다ㅠㅠ

    #12872

    김민성
    참가자

    해결했습니다. Switch를 써서 상관이 없는줄 알았는데 exact를 똑같이 붙여줘야 했습니다ㅠㅠ

    #12889

    codingapple
    키 마스터

    맨 밑에있는 <Route>들의 위치를 조정해보셔도 될듯요 

    #12905

    김민성
    참가자

    위치를 옮겨도 적용이 되는군요. 감사합니다! 큰 도움이 됐습니다.

6 글 보임 - 1 에서 6 까지 (총 6 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관, 개인정보처리방침
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠