카테고리 없음
Redux toolkit 에서 State 보관하고 사용하는 방법
KUROMI98
2023. 8. 26. 22:09
보관하는 법
store.js
import { configureStore, createSlice } from "@reduxjs/toolkit";
let user = createSlice({
name: "user",
initialState: "kim",
});
export default configureStore({
reducer: {
user: user.reducer,
},
});
1. createSlice( ) 로 state 만들고
2. configureStore( ) 안에 등록
1. createSlice( ) 상단에서 import 해온 다음에
{
name : 'state이름',
initialState : 'state값'
}
이거 넣으면 state 하나 생성가능합니다.
(createSlice( ) 는 useState( ) 와 용도가 비슷하다고 보면 됩니다)
2. state 등록은 configureStore( ) 안에 하면 됩니다.
{ 작명 : createSlice만든거.reducer } 이러면 등록 끝입니다.
여기 등록한 state는 모든 컴포넌트가 자유롭게 사용가능합니다.
사용하는 법
import { useSelector } from "react-redux";
function Cart() {
let a = useSelector((state) => state.user )
console.log(a);
return ();
}
이런식으로 꺼내서 써보면 된다.
응용
store.js
import { configureStore, createSlice } from "@reduxjs/toolkit";
// 상품 슬라이스 생성
const productSlice = createSlice({
name: "product",
// 초기 상태
initialState: [
{ id: 1, name: "Grey Yordan", count: 1 },
{ id: 2, name: "White and Black", count: 2 },
],
reducers: {},
});
// 스토어 생성
export default configureStore({
reducer: {
product: productSlice.reducer,
},
});
Cart.js
import React from "react";
import { Table } from "react-bootstrap";
import "bootstrap/dist/css/bootstrap.min.css";
import { useSelector } from "react-redux";
function Cart() {
const products = useSelector((state) => state.product);
console.log(products);
return (
<>
{products.map((product) => (
<tr key={product.id}>
<td>{product.count}</td>
<td>{product.name}</td>
<td>300,000₩</td>
</tr>
))}
</>
);
}