선생님 장바구니 만들기 수량 +1기능 만들기 버튼에서요
1. dispatch(addCount(i)) 이 코드를 치면 수량은 +1씩 증가하지만 첫 번째 데이터만 수량이 +1씩 증가하고
2번째 데이터는 반응이 없습니다
바로 위에 changeName 이름 변경하는 버튼은 모든 버튼이 다 동작하는데 이 코드는 왜 첫 번째 데이터만 인식하는 건지 모르겠습니다
2. id에 맞는 상품 버튼 수량을 +1 해주기 위해서 dispatch(addCount(state.count[i].id)) 이 코드를 치면
이 코드는 아예 버튼이 동작하지 않습니다. 혹시 제가 바로 위에
<button onClick={()=>{
dispatch(ChangeName())
}}>이름변경</button> 이름 변경 버튼도 같이 만들어놔서 그런건지 모르겠습니다
이 코드 또한 변경하기 버튼 2개에서 모두 동작합니다
따로 오류가 뜨지도 않고 버튼만 제대로 동작하지 않는 상황입니다. 제가 어떤걸 빠트린 걸까요?
Cart.js파일
import { ChangeName, increase } from './../store/userSlice.js'
import { addCount } from './../store.js'
<tbody>
{ state.cart.map((a, i)=>
<tr key={i}>
<td>{state.cart[i].id}</td>
<td>{state.cart[i].name}</td>
<td>{state.cart[i].count}</td>
<td><button onClick={()=>{
dispatch(ChangeName())
}}>이름변경</button>
</td>
<td>
<button onClick={()=>{
dispatch(addCount(state.count[i].id))
}}>수량+1</button>
</td>
</tr>
)
}
</tbody>
store.js 파일
let cart = createSlice({
name : 'cart',
initialState : [
{id : 0, name : 'White and Black', count : 2},
{id : 2, name : 'Grey Yordan', count : 1},
],
reducers : {
addCount(state, action){
let 번호 = state.findIndex((a)=>{ return a.id === action.payload})
state[번호].count++
},
addItem(state, action){
state.push(action.payload)
}
}
})
export let {addCount, addItem} = cart.actions