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

home2 게시판 React 게시판 useState 질문

useState 질문

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

    wyk
    참가자

    객체나 배열이 담긴 useState를 변경할 때에는 원본을 수정해서는 안된다고 말씀해 주셨는데, 

     const onChange = (e: { originalEvent: Event, value: number, id: string }) => {
            setSchedulingTime((prevState) => {
                return {
                    ...prevState,
                    [e.id]: e.value
                };
            });
        };

     

    이런식으로 수정을 하는 것도 선생님이 말씀해주신 원본을 수정하지 않고 state를 변경하는 방법 중 하나인가요??

    아니라면 이건 자바스크립트의 무슨 문법을 검색해야 공부할 수 있는건지 알려주실 수 있나요??

     

    #37472

    codingapple
    키 마스터

    state변경함수에 콜백함수집어넣으면 그 함수 파라미터는 이전 state가 됩니다 

    저기서도 기존 state를 복사만 했을 뿐이군요 

    #37578

    wyk
    참가자

    그러면 deep copy를 해서 객체 state를 수정해야 할 때는 언제인가요? 

     

    const onChange = (e: { originalEvent: Event, value: number, id: string }) => {
        setSchedulingTime((prevState) => {
            return {
                ...prevState,
                [e.id]: e.value
            };
        });
    };

    const onChange = (e: { originalEvent: Event, value: number, id: string }) => {
        let newState = {
            ...scheduling,
             [e.id]: e.value
            };
            setSchedulingTime(newState)
    };

     

    위에 방법과 아래 방법의 차이는 무엇이죠??

     

    #37595

    codingapple
    키 마스터

    array/object자료는 항상 카피해서 수정하면 됩니다 

    위아래 같은 코드입니다 

4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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