반응형
(index.js)
let 초기값 = [
{ id : 0, name : '멋진신발', quan : 2 },
{ id : 1, name : '멋진신발2', quan : 1 }
]
function reducer(state = 초기값, 액션) { // 여기서 등호가 들어가는 문법은 default parameter 문법(ES6 문법)
if (액션.type === '수량증가') {
let copy = [...state]
copy[0].quan++
return copy
} else {
return state
}
}
let store = createStore(reducer)
위 코드는 기존의 state와 reducer인데 여기에 다른 상태를 더 저장하고자 한다면
(index.js)
let alert초기값 = true
function reducer2(state = alert초기값, 액션) {
if (액션.type === 'alert닫기') {
state = false
return state
} else {
return state
}
}
이렇게 state 와 reducer를 추가해주고
(index.js)
import { createStore, combineReducers } from 'redux'
// 위에는 이렇게 combineReducers가 추가될 것이다.
let store = createStore(combineReducers({reducer,reducer2}))
// 그리고 store를 위와 같이 수정하면 된다.
이렇게 reducer를 추가해줄 수 있습니다.
여기까지만 하면 에러가 나는데 redux를 가져오는 곳에 reducer가 두개가 생기기 때문에
다음과 같이 구분이 필요합니다.
(Cart.js)
function state를props화(state){
return {
state : state
}
}
// 위를 아래와 같이 바꿔야한다.
function state를props화(state){
return {
state : state.reducer,
alert : state.reducer2
}
}
또한 위 Cart.js에서 쓰고자 할때 props. 을 앞에 반드시 붙여야합니다.
반응형
'React' 카테고리의 다른 글
[React] Redux셋팅 후 Reducer 셋팅하기 (0) | 2021.09.06 |
---|---|
Redux 란? Props 와 비교 (0) | 2021.07.07 |
git clone 으로 React를 받아 실행했을 때 생긴 오류 (0) | 2021.04.29 |
React hooks useState의 사용 (0) | 2021.04.29 |
Redux) 데이터를 보관하기 위한 Redux 설치/셋팅 (0) | 2021.04.20 |