장바구니 페이지를 만들어보자
store안의 state를 Cart 컴포넌트에 데이터바인딩 해보기
Cart.jsx 파일생성 후 라우터 1개만들기
<Route path="/cart" element={ <Cart/> } />
장바구니 페이지에서 사용할 Table 레이아웃
(Cart.jsx)
import {Table} from 'react-bootstrap'
function Cart() {
return (
<div>
<Table>
<thead>
<tr>
<th>#</th>
<th>상품명</th>
<th>수량</th>
<th>변경하기</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>안녕</td>
<td>안녕</td>
<td>안녕</td>
</tr>
</tbody>
</Table>
</div>
)
}
위 <Cart />
컴포넌트에
아래 data를 store에 저장 후 Redux를 활용해 데이터바인딩 해보자
[
{id : 0, name : 'White and Black', count : 2},
{id : 2, name : 'Grey Yordan', count : 1}
]
step 1. createSlice( )
로 state
만들고
step 2. configureStore( )
안에 등록
(store.js)
import { configureStore, createSlice } from '@reduxjs/toolkit'
let user = createSlice({
name : 'user',
initialState : 'kim'
})
export default configureStore({
reducer: {
user : user.reducer
}
})
(Cart.js)
import { useSelector } from "react-redux"
function Cart(){
const a = useSelector((state) => { return state } )
console.log(a)
return (생략)
}
store를 쓸 컴포넌트에서
useSelector((state) => { return state } )
위 코드를 쓰면 store에 있던 모든 state가 그 자리에 남는다.
변수에 저장해서 출력해보면 확인가능하다.
리턴과 중괄호는 생략이 가능하기 때문에 아래처럼 축약가능하다.
const a = useSelector((state) => state.user )