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

home2 게시판 React 게시판 애니메이션 주기 시작하면서 className이 적용되지 않습니다

애니메이션 주기 시작하면서 className이 적용되지 않습니다

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

    안성현
    참가자
    위 파일은 선생님 수업에서 detail.js 파일이고
    import '../App.css';
    import React, { useEffect, useState } from "react";
    import { useParams } from "react-router-dom";
    import styled from "styled-components";
    import './Semi.css';
    import Nav from 'react-bootstrap/Nav';
    function Semi(props) {
      let [alert, setAlert] = useState(true);
      let [탭, 탭변경] = useState(0);
      let [num, setNum] = useState('');
      useEffect(() => { //mount, update시 실행됨
        let a = setTimeout(() => { setAlert(false) }, 2000)
        return () => {//useEffect 동작전에 실행되는 것 return()=>{}
          clearTimeout(a) //타이머를 제거해주는 함수
        }
      }, [])
      useEffect(() => {
        if (isNaN(num) == true) {
          alert("숫자만 입력가능합니다")
        }
      }, [num])
      let { id } = useParams();
      //  let 찾은상품 = props.shoes.find(function(x){
      //   return x.id == id;
      //  })
      let 찾은상품 = props.shoes.find((x) => x.id == id);
      // .find() 문법을 사용하면 array자료 안에서 원하는 항목만 가져올 수 있다
      return (
        <div className="container">
          {alert == true ?
            <div className="alert alert-warning">
              2초이내 구매시 할인
            </div> : null
          }
          <div className="row">
            <div className="col-md-6">
              < img src="https://codingapple1.github.io/shop/shoes1.jpg" width="100%" />
            </div>
            <div className="col-md-6">
              <h4 className="pt-5">{찾은상품.title}</h4>
              <p>{찾은상품.content}</p>
              <p>{찾은상품.price}원</p>
              <button className="btn btn-danger">주문하기</button>
            </div>
          </div>   {/*처음 만든 키를 눌려있게 하고 싶으면 defaltActiveKey를 사용한다*/}
          
          <Nav variant="tabs" defaultActiveKey="link0">
            <Nav.Item>
              <Nav.Link onClick={()=>{탭변경(0)}} eventKey="link0">버튼1</Nav.Link>
            </Nav.Item>
            <Nav.Item>
              <Nav.Link onClick={()=>{탭변경(1)}} eventKey="link1">버튼2</Nav.Link>
            </Nav.Item>
            <Nav.Item>
              <Nav.Link onClick={()=>{탭변경(2)}} eventKey="link2">버튼3</Nav.Link>
            </Nav.Item>
          </Nav>
          <TabContent 탭={탭} />
        </div>
      )
    }
    function TabContent({탭}) {
      let [fade,setfade] = useState('')
      
      useEffect(()=>{
        setfade('end')
      },[탭])
     return(<div className={`start ${fade}`}>
     { [<div>내용0</div>,<div>내용1</div>,<div>내용2</div>][탭]}
     </div>)
    }
    export default Semi; 
     
    
     이파일은 App.css 파일입니다
    
    
     
    .start {
      /* 투명도 주는 스타일 opacity */
      opacity: 0; 
    }
    .end {
      opacity: 1;
      transition: opacity 0.5s;
    }
    .main-bg{
      height: 300px;
      background-image: url(./img/bg.jpg);
      background-size: cover;
      background-position: center;
    }
    .App {
      text-align: center;
    }
    .App-logo {
      height: 40vmin;
      pointer-events: none;
    }
    @media (prefers-reduced-motion: no-preference) {
      .App-logo {
        animation: App-logo-spin infinite 20s linear;
      }
    }
    .App-header {
      background-color: #282c34;
      min-height: 100vh;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      font-size: calc(10px + 2vmin);
      color: white;
    }
    .App-link {
      color: #61dafb;
    }
    @keyframes App-logo-spin {
      from {
        transform: rotate(0deg);
      }
      to {
        transform: rotate(360deg);
      }
    }
    
    
    		
    	
    #66230

    codingapple
    키 마스터
    변수명으로 alert는 쓰지맙시다
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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