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

home2 게시판 React 게시판 로딩 중 표시 질문

로딩 중 표시 질문

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

    김인구
    참가자

    app 안에 let [show, show변경] = useState(true);  만들어서

     

     <button className="btn btn-primary" onClick={ () => {
                
                // axios.post('서버URL', { id : 'codingapple', pw : 1234 }).then()

                {show &&
                <Loading> 로딩 중입니다.</Loading>
                }
                axios.get('https://codingapple1.github.io/shop/data2.json')
                .then((result)=>{
                  
                  console.log(result.data);
                  shoes변경( [ ...shoes, ...result.data ] );

                })
                .catch(()=>{
                  console.log('실패했어요');
                })

              } }>더보기</button>

     

    이후에 show값을 false로바꿔서 안보이게 해야겟다는 건 알겟는데,, 코드로 표현을 하는게어렵습니다.. 힌트좀 주시겠어요

    전에 했을때 onclick으로 show변경(!show) 이런식으로하면 됫엇는데 이거는 좀다른거같아서요

    #8863

    김인구
    참가자

    <button className="btn btn-primary" onClick={ () => {
                
                // axios.post('서버URL', { id : 'codingapple', pw : 1234 }).then()

                {show &&
                <Loading> 로딩 중입니다.</Loading>
                }
                axios.get('https://codingapple1.github.io/shop/data2.json')
                .then((result)=>{
                  show변경(false);
                  console.log(result.data);
                  shoes변경( [ ...shoes, ...result.data ] );

                })
                .catch(()=>{
                  console.log('실패했어요');
                  show변경(false);
                })

              } }>더보기</button>

     

    여기에

    let Loading = styled.div`
      margin:0 auto;
      width:200px; height:100px; 
      background-color:black;
      border:1px solid #ffffff;
      color:white;
      text-align:center;
      line-height:100px;
      font-size:20px;
    `;

     

    스타일 컴포넌트도 적용했는데,, 안되서요

    #8864

    김인구
    참가자

    + 더보기 몇번이상 눌렀을 떄 버튼 안보이게하는 코드도 개발중인데...

    상단에 var count = 0;

    onclick안에 이제

    count++;

    if(count>2){

     버튼이 안보이게 해야한다 <= 이 부분을 구현을 못하겠습니다.

    }

    #8876

    codingapple
    키 마스터

    show &&<Loading> 로딩 중입니다.</Loading> 이건 맞는데
    버튼의 onClick 안에다가 HTML을 뱉어도 아무일도 일어나지 않습니다

    저걸 다른 곳으로 옮겨보도록 합시다 

     

    버튼이 안보이게 해야한다 <= 버튼을 UI처럼 디자인해놓으십시오 

    1. 버튼을 켜고끄는 state를 하나 만들어두시고 그거 따라서 버튼이 켜지게 if문 등으로 코드를 짜놓습니다. 

    2. 특정 조건을 만족했을 때 버튼 안보이게 state를 변경하면 됩니다 

     

     

    #8882

    김인구
    참가자

    로딩 중 은 해결했습니다.

     

    그런데 버튼 숨기기에서 몇가지 질문이 있습니다.

    1. 그러면 버튼을 UI로

    function Btn () {
      return(
        <button className="btn btn-primary" id="bt" onClick={ () => {

                  show변경(true);
                // axios.post('서버URL', { id : 'codingapple', pw : 1234 }).then()
                
                axios.get('https://codingapple1.github.io/shop/data2.json')
                .then((result)=>{
                  console.log(result.data);
                 shoes변경( [ ...shoes, ...result.data ] );
                 show변경(false);
                })
                .catch(()=>{
                  console.log('실패했어요');
                  show변경(false);
                })

              } }>더보기</button>
      )
    }

    이런식으로 만들었는데, 이렇게되면 state를 다 props해와서 바꿔줘야 하는지, 

    그리고 제 생각으로는 var count=0;

    으로 시작해서 클릭시 count가 올라가서 count가 몇보다 크면 안보이게 false값으로 만들어줘야할것같은데,,, 만드는데 좀 더 힌트 부탁드립니다.

    #8889

    codingapple
    키 마스터

    부모의 state를 자식컴포넌트에서 쓰고 싶으면 props전송밖에 없습니다

    count 변수가 버튼 바깥에 있으면

    if (count < 2) 
    <Btn/>
    else
    null

    이런 식으로 코드짜면 안될까요 

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