티스토리 뷰
오늘은 Redux 상태관리 실습의 추가적인 기능을 구현해보았다.
actions/index.js
action 부분에서는 Action 객체를 생성하는 액션 생성자 사용하여서 코드를 작성하였다.
addCart의 경우는 새롭게 추가될 itemId를 받아서
itemId와 1개의 수량을 나타내는 payload 객체, 알맞은 타입을 반환해주었다
removeFromCart의 경우는 삭제에 필요한 itemId를 받아서,
itemId를 나타내는 payload 객체와, 알맞은 타입을 반환했고,
setQuantity의 경우 수정할 itemId와 수량을 받아서,
itemId와 수량을 나타내는 payload 객체와 알맞은 타입을 반환해 주었다.
pages/ShoppingCart.js
Action 객체를 Reducer로 전달해 주는 Dispatch 함수를 반환하는 useDispatch()와
최종적으로 Redux의 state에 접근할 수 있게 해주는 useSelector() 메소드를 사용하여,
실제로 기능이 구현하게 하였다.
우선 useSelector()메소드를 사용하여 state에 Redux의 state.itemReducer에 접근할 수 있게 해주었다.
그 후, useDispatch()메소드를 사용하여 Reducer에 Action인자를 전달할 수 있게 dispatch를 선언해 준 뒤,
handleQuantityChange, handleDelete 함수를 안에서 dispatch를 실행시키고
dispatch 내부에서 action에서 작성했던 함수를 실행시켜, action 객체를 반환하며 Reducer에 action객체를 전달해준다.
위의 예시까지가 Redux의 코드를 분할하여 상태관리를 하는 예시였다.
실행 결과
장바구니에 추가, 삭제, 수량 설정까지 잘 되는 것을 볼 수 있다.
- Total
- Today
- Yesterday
- 감정 일기장
- 코드스테이츠
- SEB43
- React quill
- 스택오버플로우
- 감정일기장
- 백준
- 기술면접
- dfs
- BFS
- 프로그래머스
- SEB 43
- 그리디 알고리즘
- 프로젝트
- 코테
- 인적성
- 브루드포스
- 개인 프로젝트
- 프론트엔드
- til
- 프리프로젝트
- seb
- SEB 43기
- Redux
- dictionary
- 다이나믹 프로그래밍
- 회고
- useContext
- SEB43기
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |