concept/React, Redux, RN
react-redux
오연 : Oana
2020. 12. 17. 10:51
connect 메소드
: 컴포넌트와 store를 연결시켜주는 역할
import { connect } from 'react-redux';
class Counter extends Component {
render() {
return (
<div>this.props.value</div>
<input
onChange={(e) => this.props.changeDiff(e.target.value)}
/>
)
}
}
const mapStateToProps = (state) => {
return {
value: state.value
}
}
const mapDispatchToProps = (dispatch) => {
return {
changeDiff: (diff) => dispatch(action(diff))
}
}
Counter = connect(mapStateToProps, mapDispatchToProps)(Counter);
export default Counter;
위와 같은 방식으로 사용할 수 있다.
여기서 mapStateToProps 함수는 이름을 마음대로 바꿔도 되지만 보통 직관적으로 이렇게 쓴다.
이 함수의 역할은 컴포넌트의 state와 props를 이어준다.
즉, Counter 컴포넌트 안에서 this.props.state 라고 쓸 수 있게 해주는 것
이전에는 this.props.store.getState() 라고 썼어야 했는데 요걸 쉽게 만들어 준 것!~
두번째 인자로 받을 수 있는 mapDispatchToProps 함수는 원래 this.props.store.dispatch(action) 해서 쓰는 방식을 위와 같이 편하게 만들어준 것이다.