728x90
- 설치
yarn add redux react-redux @reduxjs/toolkit
- store
import { configureStore } from "@reduxjs/toolkit";
import reducer from "./reducer";
const store = configureStore({
reducer: {
reducer: reducer,
},
});
export type RootState = ReturnType<typeof store.getState>;
export type AppDispatch = typeof store.dispatch;
export default store;
- reducer
import { PayloadAction, createSlice } from "@reduxjs/toolkit";
interface IReducerState {
accessToken: string;
}
const initialState: IReducerState = {
accessToken: "",
};
const reducerSlice = createSlice({
name: "reducer",
initialState: initialState,
reducers: {
setAccessToken(state, action: PayloadAction<string>) {
state.accessToken = action.payload;
},
},
});
export const reducerActions = reducerSlice.actions;
export default reducerSlice.reducer;
- index
import ReactDOM from "react-dom/client";
import "./index.css";
import App from "./App";
import reportWebVitals from "./reportWebVitals";
import store from "./redux/store";
import { Provider } from "react-redux";
const root = ReactDOM.createRoot(
document.getElementById("root") as HTMLElement
);
root.render(
<Provider store={store}>
<App />
</Provider>
);
reportWebVitals();
- ex
import { configureStore } from "@reduxjs/toolkit";
import reducer from "./reducer";
import sppReducer from "./sppReducer";
const store = configureStore({
reducer: {
reducer: reducer,
sppReducer: sppReducer,
},
});
export type RootState = ReturnType<typeof store.getState>;
export type AppDispatch = typeof store.dispatch;
export default store;
import { PayloadAction, createSlice } from "@reduxjs/toolkit";
import { ISolarDataFromBack } from "../interfaces/api.interface";
interface IReducerState {
solarData: ISolarDataFromBack[];
}
const initialState: IReducerState = {
solarData: [],
};
const sppSlice = createSlice({
name: "reducer",
initialState: initialState,
reducers: {
setSolarData(state, action: PayloadAction<ISolarDataFromBack[]>) {
state.solarData = action.payload;
},
},
});
export const sppActions = sppSlice.actions;
export default sppSlice.reducer;
const dispatch = useDispatch()
dispatch(sppActions.setSolarData(filteredSolarData))
const solarData = useSelector((state: RootState) => state.sppReducer.solarData)
728x90
'코딩 > React' 카테고리의 다른 글
TypeScript로 생성 CLI (0) | 2024.10.30 |
---|---|
쿠키 (0) | 2024.06.18 |
type (0) | 2024.05.24 |
React 환경변수 (0) | 2024.03.25 |