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

home2 게시판 React 게시판 redux toolkit 질문

redux toolkit 질문

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

    위펀
    참가자
    const store = useSelector((state) => state);
    const dispatch = useDispatch();
    const testFunction = () => {
    console.log(store.user.age);
    setTest1(store.user.age);
    };
    const [test1, setTest1] = useState(0);
    -----------------------------------
    <button onClick={() => {
      dispatch(ageUp(10));
      console.log(store);
      testFunction();
    }}
    >
      {store.user.age}<br />
      {test1}
    </button>
    위와 같이 버튼을 클릭 할 때, 10씩 증가하는 이벤트를 처리하고 있습니다.
    이해가 안되는 부분이 있는데,
    dispatch(ageUp(10));를 실행하고 하위에 콘솔로 찍으면 더해진 값이 아닌 이전 값이 찍히고 있습니다.
    근데 버튼 내에 있는 {store.user.age} 10이 증가된 값이 찍히는데, 왜 이렇게 찍히는지 궁금합니다.
    
    그리고 해결하려면 어떻게 해야하나요?
    #38675

    codingapple
    키 마스터
    state변경함수들은 늦게 처리됩니다 
    자바스크립트는 늦게 처리되는 코드를 만나면 제껴두고 바로 다음줄 부터 실행합니다
    #38678

    위펀
    참가자
    그럼 testFunction 내에서는 바뀐 결과값을 확인하려면
    클릭 이벤트가 끝나고 useEffect를 써서 store가 변경된걸 감지 후에 사용할 수 밖에 없는건가요?
    #38707

    codingapple
    키 마스터
    네 그러면 됩니다
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 호 / 개인정보관리자 : 박종흠