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 | 29 | 30 |
Tags
- react next
- 다른컴퓨터에서 git사용
- SCSS forward
- SCSS extend
- Spacer
- Vue
- 프로그래머스 K_Digital Training
- SCSS use
- KDT 프로그래머스
- postcss
- 프로그래머스 데브코스 프론트엔드
- flex
- 이벤트 수식어
- 리액트
- 쌓임맥락
- vue mixin
- netlify redirect
- vuex map
- git 같은계정 다른 컴퓨터
- 리스트 렌더링
- 폼 입력 바인딩
- vue 이벤트 수신
- SCSS import
- 프로그래머스 데브코스
- 프로그래머스 프론트엔드 데브코스
- 고양이 사진 검색기
- intersection opserver
- nextjs사용법
- KDT 프로그래머스 데브코스 프론트엔드
- vue 지역 컴포넌트
Archives
- Today
- Total
혼자 적어보는 노트
[React]react에서 redux connent 코드 간소화 본문
import React, { Component } from "react";
import Counter from "../components/Counter";
import { connect } from "react-redux";
import * as counterActions from "store/modules/counter";
class CounterContainer extends Component {
handleIncrement = () => {
this.props.increment();
};
handleDecrement = () => {
this.props.decrement();
};
render() {
const { handleIncrement, handleDecrement } = this;
const { number } = this.props;
return (
<Counter
onIncrement={handleIncrement}
onDecrement={handleDecrement}
number={number}
/>
);
}
}
const mapStateToProps = (state) => ({
number: state.counter.number,
});
const mapDispatchToProps = (dispatch) => ({
increment: () => dispatch(counterActions.increment()),
decrement: () => dispatch(counterActions.decrement()),
});
export default connect(mapStateToProps, mapDispatchToProps)(CounterContainer);
cunnect에 담을 함수를 따로 쓰지 않고 담아서 사용하면 아래와 같이 코드를 간소화시킬 수 있다.
const mapStateToProps = ;
const mapDispatchToProps = ;
export default connect(
(state) => ({
number: state.counter.number,
}),
(dispatch) => ({
increment: () => dispatch(counterActions.increment()),
decrement: () => dispatch(counterActions.decrement()),
})
)(CounterContainer);
bindActionCreator() 사용
import React, { Component } from "react";
import Counter from "../components/Counter";
import { connect } from "react-redux";
import * as counterActions from "store/modules/counter";
import { bindActionCreators } from "redux";
class CounterContainer extends Component {
handleIncrement = () => {
const { CounterActions } = this.props;
CounterActions.increment();
};
handleDecrement = () => {
const { CounterActions } = this.props;
CounterActions.decrement();
};
render() {
//생략
}
export default connect(
(state) => ({
number: state.counter.number,
}),
(dispatch) => ({
CounterActions: bindActionCreators(counterActions, dispatch),
})
)(CounterContainer);
'React' 카테고리의 다른 글
[React] 비동기 SetState 동기식 처리 (0) | 2021.12.10 |
---|---|
[React] immer를 사용한 불변성 관리 (0) | 2021.12.09 |
[React] select 사용하여 option구현 (장바구니옵션) (0) | 2021.12.05 |
[React] Checkbox 상태 관리하기 (0) | 2021.11.28 |
[React] input에 숫자만 출력하기 / 한글입력 오류 해결 (0) | 2021.11.26 |
Comments