์ ๋ฒ ํ์ต ์๊ฐ์ ์ด์ด Redux ๊ณผ์ ๋ฅผ ์งํํ๋ฉด์
์๊ฒ๋ ์ ๊ณผ ์ค์ํ๋ค ์๊ฐํ๋ ์ ์ ๊ฐ์ด ์์ฑํด ์ฃผ์๋ค.
const ADD_TO_CART = "ADD_TO_CART";
const REMOVE_FROM_CART = "REMOVE_FROM_CART";
const SET_QUANTITY = "SET_QUANTITY";
export const removeFromCart = (itemId) => {
return {
type: REMOVE_FROM_CART,
payload: {
itemId
}
}
}
filter
๋ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํ๋ค.spread syntax
, Object.assign
์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๋ ์๋ค.const closed = state.cartItems.filter(el => el.itemId !== action.payload.itemId)
return {...state, cartItems: closed}
const itemReducer = (state = initialState, action) => {}
export const setQuantity = (itemId, quantity) => {
return {
type: SET_QUANTITY,
payload: {
itemId,
quantity
}
}
}
.
.
.
// Action payload ์ง์ ํ ์์๋๋ก ์์ฑํด ์ฃผ๋ฉด ๋๋ค.
const handleQuantityChange = (quantity, itemId) => {
dispatch(setQuantity(itemId, quantity))
}
Redux๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก React ๋ง๊ณ ๋ JavaScript์์๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
React์์ Redux๋ฅผ ์ฌ์ฉํด ์ํ๋ฅผ ๊ฐ๋จํ๊ฒ ๊ด๋ฆฌํ ์ ์์๋ค.
Redux๋ ์ํ ๊ด๋ฆฌ๊ฐ ์์ฃผ ๋ฐ์ํ๊ณ props๋ฅผ ์ ๋ฌํ๋ ์ปดํฌ๋ํธ๊ฐ ๋ง์ผ๋ฉด
์ฌ์ฉํ๊ธฐ ์ข์ ๋ฏ ์ถ๋ค.