갈푸라떼
갈푸라떼는 개발중
갈푸라떼
전체 방문자
오늘
어제
  • 분류 전체보기 (232)
    • CS (0)
      • CSinfo (0)
    • Frontend (15)
      • HTML,CSS (1)
      • Javascript (2)
      • React (0)
      • React Hook (12)
    • Backend (0)
      • Python (0)
      • Node.js (0)
      • php (0)
    • DB (2)
      • MySQL (2)
      • BigQuery (0)
      • Mongodb (0)
    • Study (186)
      • JavaScript (72)
      • JavaScript(Clean code) (50)
      • Node.js (11)
      • HTML,CSS (13)
      • React (30)
      • TypeScript (10)
      • React-Native (0)
    • Error (2)
      • error (2)
    • Git (22)
      • Git (22)
    • Help Coding (4)
      • Useful websites (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • Github

공지사항

인기 글

태그

  • 컴파일러
  • nodemon
  • 자바스크립트엔진
  • 호이스팅
  • structure
  • 함수
  • Arrow
  • function
  • 상속
  • 객체타입
  • 네이밍
  • symbol
  • Babel
  • ECMAScript
  • 오버라이딩
  • this
  • 렉시컬 환경
  • prototype
  • 정적 레벨
  • 인터프리터
  • 스코프 체인
  • 싱글스레드
  • SPREAD
  • 이터러블
  • 심볼
  • 프로토타입
  • 실행 컨텍스트
  • class
  • 원시타입
  • PM2

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
갈푸라떼

갈푸라떼는 개발중

Study/React

[React_study] Redux state가 object/array일 경우 변경 방법

2022. 6. 15. 00:49

* store에 저장된 state가 array, object 자료인 경우

  • Immer.js 라이브러리가 state사본을 하나 더 생성해주어서 직접 수정하는 문법도 잘 변경 된다.

    (Redux를 설치하면서 Immer.js라이브러리가 같이 설치되었다.)

  • array/object자료의 경우 state변경을 state를 직접 수정해버려도 잘 된다.

    (참고) 그래서 state를 만들 때 문자나 숫자 하나만 필요해도 redux에서는 일부러 object아니면 array에 담는 경우가 있다. 수정이 편리하기 때문에

let user = createSlice({
  name : 'user',
  initialState : {name : 'kim', age : 20},
  reducers : {
    changeName(state){
      state.name = 'park'
    }
  }
})

* 다른 예시 코드

let user = createSlice({
  name : 'user',
  initialState : {name : 'kim', age : 20},
  reducers : {
    increase(state){
      state.age = state.age + 1
    }
  }
})
 

* state 변경 함수가 여러개 필요할 때

- 파라미터를 이용한다.

- state변경함수의 두번째 파라미터를 이용한다.

let user = createSlice({
  name : 'user',
  initialState : {name : 'kim', age : 20},
  reducers : {
    increase(state, action){
      state.age = state.age + action.payload
    }
  }
})

 

increase(10) // + 10이 된다.

increase(100) // + 100이 된다.

 

(참고)

- action 이런 식으로 작명 많이 한다.

- action.type 하면 state변경함수 이름이 나온다.

- action.payload 하면 파라미터가 된다.

'Study > React' 카테고리의 다른 글

[React_study] 터미널 / 브라우저 콘솔창에 warning  (0) 2022.06.20
[React_study] reset css 하는 방법 + npm으로 설치  (0) 2022.06.18
[React_study] Redux store의 state 변경  (0) 2022.06.12
[React_study] Redux store에 state 보관 & 호출  (0) 2022.06.12
[React_study] Redux & Redux Toolkit 셋팅 및 사용  (0) 2022.06.12
    'Study/React' 카테고리의 다른 글
    • [React_study] 터미널 / 브라우저 콘솔창에 warning
    • [React_study] reset css 하는 방법 + npm으로 설치
    • [React_study] Redux store의 state 변경
    • [React_study] Redux store에 state 보관 & 호출
    갈푸라떼
    갈푸라떼

    티스토리툴바