• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 React 게시판 장바구니 삭제 이게 맞는지 모르겠습니다.

장바구니 삭제 이게 맞는지 모르겠습니다.

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #46210

    남도일
    참가자
    store.js
    
    import {configureStore, createSlice} from '@reduxjs/toolkit'
    import user from './store/userSlice'
    let cart = createSlice({
    name:'cart',
    initialState:[
     {id : 0, name : 'White and Black', count : 2},
     {id : 2, name : 'Grey Yordan', count : 1},
     ],
     
    reducers:{
    changeCount(state,action){
    let number = state.findIndex((a)=>{return a.id === action.payload})
    state[number].count++
     },
    addItem(state,action){
    state.push(action.payload)
     },
    deleteItem(state,action){
    state.filter((x) => x.id !== action.payload);
     
    return deleteItem();
     
     }
     }
    })
    export let { addItem,changeCount,deleteItem } = cart.actions

    export default configureStore({
    reducer: {
    user : user.reducer,
    cart : cart.reducer
    }
    })

    cart.js

    import { Table } from "react-bootstrap";
    import { useDispatch, useSelector } from "react-redux";
    import { changeName, changeAge } from "../store/userSlice";
    import {changeCount,deleteItem} from "../store"
    function Cart() {
    let state = useSelector((state) => state);
    let dispatch = useDispatch();
    return (
    <div>
    {state.user.name}
    {state.user.age}의 장바구니
    <button
    onClick={() => {
    dispatch(changeAge(100));
     }}
    >
     버튼
    </button>
    <Table>
    <thead>
    <tr>
    <th>#</th>
    <th>상품명</th>
    <th>수량</th>
    <th>변경하기</th>
    </tr>
    </thead>
    <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(changeCount(state.cart[i].id));
     }}
    >
     +
    </button>
    <button onClick={()=>{
    dispatch(deleteItem(state.cart[i].id))
     }}>삭제</button>
    </td>
    </tr>
     ))}
    </tbody>
    </Table>
    </div>
     );
    }
    export default Cart;
    //redux state변경하려면
    // 1. state변경해주는 함수 만들기
    // 2. export
    // 3. dispatch(state변경함수()
     
    #46224

    codingapple
    키 마스터
    deleteItem함수안에서 
    var 어쩌구 = state.filter(~~);
    return 어쩌구;
    이렇게 쓰는게 나을듯요
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관, 개인정보처리방침
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠