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

home2 게시판 React 게시판 state 변경함수에 대한 질문입니다.

state 변경함수에 대한 질문입니다.

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

    박성화
    참가자
    안녕하세요 선생님!
    
    onClick 이벤트 생성시 state 변경함수를 이용하면서 문제가 생겨서 질문드립니다.
    
    
    onClick={() => {
    (들어갈 효과)
    }}
    
    이렇게 하지 않고,
    
    function 변경함수(){
    (들어갈 효과)
    }
    onClick={변경함수}
    
    이렇게 정리하고 있었습니다.
    
    그런데 onClick={변경함수()}이렇게 하면 오류가 납니다.
    그래서 변경함수(a,b) 이렇게 변수를 넣고 싶어도 넣을 수가 없는 경우가 생깁니다.
    그렇다면 onClick 이벤트 핸들러에서는 변경함수에 대한 파라미터를 쓸 수 없는 건가요? 쓴다면 어떻게 쓰게 되나요?
    
    아래는 제가 작성한 코드와 에러나는 부분을 수정한 코드입니다.
    
    
    let [title, setTitle] = useState(['남자 코트 추천', '강남 우동 맛집', '자바스크립트 독학']);
    
    
    let [likeCount, setLikeCount] = useState([0,0,0]);
    function likeCountUp(num){
        let copy = [...likeCount];
        copy[num] = copy[num]+1;
        setLikeCount(copy);
      }
    
    return (
    {
            title.map(function(a, i){
              return (<div className="list" key={i} onClick={modalShowHide}>
              <h4>{a}<span style={{cursor:'pointer'}} onClick={likeCountUp(i) <--- 에러나는 부분   }>👍</span> {likeCount[i]}</h4>
              <p>2월 17일 발행</p>
            </div>)
            })
          }
    
    ////에러 막으려고 수정한 코드////
    {
            title.map(function(a, i){
              return (<div className="list" key={i} onClick={modalShowHide}>
              <h4>{a}<span style={{cursor:'pointer'}} onClick={() => {
                let copy = [...likeCount];
                copy[i] ++;
                setLikeCount(copy);
              }}>👍</span> {likeCount[i]}</h4>
              <p>2월 17일 발행</p>
            </div>)
            })
          }
    
    )
    
    
    감사합니다.
     
    #62194

    codingapple
    키 마스터
    onClick={()=>{ 여기에 작성합시다 }}
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 호 / 개인정보관리자 : 박종흠