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

home2 게시판 React 게시판 쇼핑몰 상세페이지

쇼핑몰 상세페이지

8 글 보임 - 1 에서 8 까지 (총 8 중에서)
  • 글쓴이
  • #105475

    김선옥
    참가자
    주소에 detail/1을 입력하면 해당 상세페이지가 나오는데
    상품 이미지를 클릭했을 때 해당 상세페이지가 보이게 하고 싶습니다.
    
    
    import React from "react";
    import { Col } from "react-bootstrap";
    import { Routes, Route, Link, useNavigate } from "react-router-dom";
    import { useParams } from "react-router-dom";
    const Card = (props) => {
      let { id } = useParams();
      console.log(id);
      return (
        
        <Col md={4}>
          <Link to="뭘써야할까요">
            console.log(id);
            < img src={"/img/" + props.product.img}></img>
          </Link>
          <h4>{props.product.title}</h4>
          <p>{props.product.content}</p>
          <p>{props.product.price}</p>
        </Col>
        
      );
    };
    export default Card;
    
     useParams를 이용해야하나 싶어서 했는데 오류가 나네요
    어떻게 해야하나요?
    #105490

    codingapple
    키 마스터
    이미지 클릭하면 navigate() 실행해서 페이지 이동시킵시다
    #105504

    김선옥
    참가자
    선생님께서 navigate를 이용하라고 하셔서 이렇게 했는데 이게 아닌가보네요
    ㅠㅠ
     
    import React from "react";
    import { Col } from "react-bootstrap";
    import { Routes, Route, Link, useNavigate } from "react-router-dom";
    import { useParams } from "react-router-dom";
    const Card = (props) => {
      let navigate = useNavigate();
      let { id } = useParams();
      console.log(id); //undefined나옴
      const onClickImg = () =>{
        navigate("/detail/:id");
      }
      return (
        <Col md={4} onClick={onClickImg}>
          < img src={"/img/" + props.product.img}></img>
          <h4>{props.product.title}</h4>
          <p>{props.product.content}</p>
          <p>{props.product.price}</p>
        </Col>
      );
    };
    export default Card;
    
    주소를 입력하면 잘 나옵니다만
     캡처
    #105513

    codingapple
    키 마스터
    navigate("/detail/0") 합시다 :id 문법은 <Route>에서만 사용가능합니다
    #105515

    김선옥
    참가자
    선생님 이렇게 하면 첫번째 상품만 상세페이지에 보이잖아요
    다른 상품을 클릭하면 해당 상세페이지가 보이게 하고 싶거든요
    
    4
    
    
    
    		
    	
    #105516

    김선옥
    참가자
    선생님 이렇게 해서 연결은 했는데 이 방법은 아닌거 같아서요
    
    
    const Card = (props) => {
    let navigate = useNavigate();
    let id = props.product.id;
      const onClickImg = () =>{
        if(id == 0) { navigate("/detail/0");}
        if(id == 1) {navigate("/detail/1");} 
        if(id == 2) {navigate("/detail/2");} 
        if(id == 3) {navigate("/detail/3");} 
        if(id == 4) {navigate("/detail/4");} 
      }
      return (
        <Col md={4} onClick={onClickImg}>
          < img src={"/img/" + props.product.img}></img>
          <h4>{props.product.title}</h4>
          <p>{props.product.content}</p>
          <p>{props.product.price}</p>
        </Col>
      );
    };
    #105547

    codingapple
    키 마스터
    navigate("/detail/" + id) 하면 if문 필요없어보입니다
    #105563

    김선옥
    참가자
    감사합니다~~
8 글 보임 - 1 에서 8 까지 (총 8 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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