반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Git commit 합치기
- 전략패턴
- awss3
- cypress React
- 리액트구글애널리틱스
- 리팩터링2판테스트
- 가상면접2장
- gitsquash
- 시스템설계방법
- git squash
- 헤드퍼스트전략패턴
- 가상면접3장
- 시스템설계
- react
- formik react-query submitting not working
- 디자인패턴
- FirebaseAnalytics
- s3이미지다운로드됨
- git commit merge
- 가상면접으로대규모시스템
- file not found Error
- 리팩토링2판4장
- 테스트코드책
- react-ga
- git commit 협업
- 시스템설계면접팁
- cypressBDD
- 시스템설계면접
- 시스템설계면접예시
- formik submitting not working
Archives
- Today
- Total
mingg IT
[React] 콘솔 로그에 색상 입히기, redux-logger 사용하기 본문
우선 결과 화면
이전 state, next state, action을 볼수있음. 액션 dispatch 시간도 나타남.
1. yarn add redux-logger 설치
2. createLogger 사용
import { createLogger } from "redux-logger";
const logger = createLogger();
const store = createStore(rootReducer, applyMiddleware(logger));
3. 예제 코드
index.js
import React from "react";
import { applyMiddleware, createStore } from "redux";
import { Provider } from "react-redux";
import { composeWithDevTools } from "redux-devtools-extension";
import MiddlewareApp from "./App";
import rootReducer from "./Main";
import loggerMiddleware from "../lib/loggerMiddleware";
import { createLogger } from "redux-logger";
const MiddlewareMain = () => {
// const store = createStore(rootReducer);
// const store = createStore(rootReducer, applyMiddleware(loggerMiddleware));
const logger = createLogger();
const store = createStore(rootReducer, applyMiddleware(logger));
return (
<Provider store={store}>
<MiddlewareApp />
</Provider>
);
};
export default MiddlewareMain;
MiddlewareApp.js
import React from "react";
import CounterContainer from "../../ReduxExample/containers/CounterContainer";
const MiddlewareApp = () => {
return (
<div>
<CounterContainer />
</div>
);
};
export default MiddlewareApp;
CounterContainer.js
import React, { useCallback } from "react";
import { connect, useDispatch, useSelector } from "react-redux";
import { bindActionCreators } from "redux";
import Counter from "../../Middleware/components/Counter";
import useActions from "../lib/useActions";
import { decrease, increase } from "../modules/counter";
const CounterContainer = () => {
const number = useSelector((state) => state.counter.number);
const dispatch = useDispatch();
const onIncrease = useCallback(() => {
dispatch(increase());
}, [dispatch]);
const onDecrease = useCallback(() => {
dispatch(decrease());
}, [dispatch]);
return (
<Counter number={number} onIncrease={onIncrease} onDecrease={onDecrease} />
);
};
//컴포넌트와 리덕스 연동하기위해 사용(connect)
export default connect((state) => ({ number: state.counter.number }), {
increase,
decrease,
})(CounterContainer);
counter.js
import React from "react";
const Counter = ({ onIncrease, onDecrease, number }) => {
return (
<div>
<h1>{number}</h1>
<button onClick={onIncrease}>+1</button>
<button onClick={onDecrease}>-1</button>
</div>
);
};
export default Counter;
'FrontEnd' 카테고리의 다른 글
[React] 미들웨어 redux-saga 예제 (takeEvery, TaskLatest) (0) | 2021.08.02 |
---|---|
[React] 리액트 미들웨어 redux-thunk 예제 (0) | 2021.08.02 |
[React] 크롬 개발자 도구를 통한 성능 모니터링 및 최적화 (0) | 2021.07.23 |
[React] 컴포넌트의 라이프사이클 (0) | 2021.07.20 |
[React] babel(바벨) (0) | 2021.07.20 |
Comments