본문 바로가기

Web/React

connect API

connect([mapStateToProps], [mapDispatchToProps], [mergeProps], [options])


connect는 react-redux의 내장 API 이다.


이 함수는 React Component를 Redux Store에 '연결' 해준다.

이 함수의 리턴값은 특정 컴포넌트 클래스의 props를 store의 데이터에 연결시켜주는 또 다른 함수를 리턴한다.

리턴된 함수에 컴포넌트를 인수로 넣어 실행하면, 기존 컴포넌트를 수정하는게 아니라 새로운 컴포넌트를 return 한다.


인수 :

mapStateToProps(state, [ownProps]): (Function) store의 state를 컴포넌트의 props에 매핑 시켜준다.

ownProps 인수가 명시될 경우, 이를 통해 함수 내부에서 컴포넌트의 props 값에 접근 할 수 있다.


mapDispatchToProps(dispatch, [ownProps]): (Function or Object) : 컴포넌트의 특정 함수형 props를 실행 했을 때, 개발자가 지정한 action을 dispatch 하도록 설정한다. ownProps의 용도는 위 인수와 동일하다.



출처 : http://velopert.com



const mapStateToProps = state => ({
    todos: state.todos,
    editingId: state.editingId
});

const mapDispatchToProps = dispatch => ({
    getTodos: () => dispatch(TodoActions.getTodos()),
    addTodo: text => dispatch(TodoActions.addTodo(text)),
    deleteTodo: id => dispatch(TodoActions.deleteTodo(id)),
    editTodo: id => dispatch(TodoActions.editTodo(id)),
    saveTodo: (id, newText) => dispatch(TodoActions.saveTodo(id, newText)),
    cancelEdit: () => dispatch(TodoActions.cancelEdit()),
    toggleTodo: id => dispatch(TodoActions.toggleTodo(id)),
    toggleAll: () => dispatch(TodoActions.toggleAll()),
    clearCompleted: () => dispatch(TodoActions.clearCompleted())
});

export default connect(mapStateToProps, mapDispatchToProps)(App);


'Web > React' 카테고리의 다른 글

portals  (0) 2018.05.17
Return Types Strings and Fragments  (0) 2018.05.17
Redux  (0) 2017.12.12
Async Await  (0) 2017.12.10
AJAX (promise)  (0) 2017.12.10