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

home2 게시판 React 게시판 온클릭 응용하고있는데 질문있습니다 쌤 ㅜㅜ

온클릭 응용하고있는데 질문있습니다 쌤 ㅜㅜ

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

    이덕원
    참가자

    import Bori from './bori.jpeg';
    import './Gallery.css';
    import Cat from './Cat.jpeg';
    import Human from './Human.jpeg';

     

    const Gallery = () => {  //갤러리라는 컴포넌트를 만들었습니다.

      const [animalState, animalFunc] = useState(Bori) //Bori는 강아지 사진입니다.  

      const [hhState, hhFunc] = useState('강아지')
     

     

      const Clc = (e) => {   //클릭하면 이미지 바꿔버리기, 글씨 바꿔버리기 입니다.
         animalFunc(e.target.src)
     
         if(e.target.className === 'img-o dog') { 
             hhFunc('강아지')</strong>
         } else if (e.target.className === 'img-o cat'){
             hhFunc('고양이')</strong>
         } else if(e.target.className === 'img-o human') {
             hhFunc('사람')
        }
    }
      return (
           <div>
            <nav>
             <div className="puppy">
               <img src={Bori} className="img-o dog" onClick={Clc} />     //우선 보여주는 3가지 이미지에 클래스네임 따로 주기
               <img src={Cat} className="img-o cat" onClick={Clc} />
               <img src={Human} className="img-o human" onClick={Clc}/>
             </div>

              <h3>{hhState}</h3> // 해당 부분이 클래스네임 'dog' 클릭하면  '강아지' 띄우겠다 입니다.

              <img src={animalState} className="img-t"/> // 해당부분은 클릭되는 Src를 그대로 적용하는 것입니다.
          </nav>
    </div>

    );
    }

     

    쌤 안녕하세요

    온클릭이랑 useState응용해보고 있는데요! 강아지, 고양이, 사람

    3개의 이미지를 작게 보여주고 해당 이미지를 클릭하면 아래에 크게(똑같은 이미지가)보여지는 화면을 만들어봤는데요.

    강아지면 강아지라는 텍스트가, 고양이면 고양이라는 텍스트가 뜨게 하고 싶어서 함수 Clc를 작성했습니다!

     

    물론 구현은 되는데..  저렇게 3개의 이미지에 각각 클래스네임을 dog, cat 따로 줘서

    클릭된 이미지의 클래스네임이 dog면 '강아지' 텍스트 띄우겠다 이런 코드가 쌤이 볼때는 어떠신가요?...
    많이 허접한가요 ?? 이 코드 작성하는데 3시간 걸렸습니다.ㅜ_ㅜ

     

    질문 확인 감사드립니다!

    #9074

    codingapple
    키 마스터

    문제되는건 없어보이는데여 

    사진이 100개면 if문도 100개가 될텐데 

    if문 여러개 대신에 바로 hhFunc(e.target.className) 이렇게 개발하면 100개 안써도 되겠군요

    #9075

    이덕원
    참가자

    그러면

    이미지 1 className="강아지"

    이미지 2 className="고양이"

    이미지 3 className="사람"

    이런식으로 작성해야되는거죠? ㅜㅜㅜ

    #9081

    codingapple
    키 마스터

    img-o dog 그대로 냅둬도 상관없지않을까요

    #9084

    이덕원
    참가자

    쌤 말씀대로 해봤는뎅

    강아지 사진 클릭하면

    img-o 강아지

    img-o 고양이

    img-o 사람

    이렇게 className 전체가 나와버리는데

    혹시 제가 className 활용을 잘 못하고 있는 걸까요? ㅜㅜ

    #9098

    codingapple
    키 마스터

    넴 전부가 나오겠죠 그거가지고 기능개발해도 될듯해서요 

    그냥 저의 의견일 뿐입니다 

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 호 / 개인정보관리자 : 박종흠