mapDispatchToProps и mapStateToProps - это функции, которые передаются в connect()
в качестве аргументов и определяют, какие данные и действия передавать компоненту.
mapStateToProps()
mapStateToProps() - это функция, которая принимает текущее состояние state
из хранилища и возвращает объект свойств props
, которые будут переданы компоненту. Она позволяет компоненту получать доступ к состоянию приложения и использовать его для обновления интерфейса. mapStateToProps()
вызывается каждый раз при обновлении состояния в хранилище, что обновляет свойства компонента и вызывает перерисовку.
Например, вот пример функции mapStateToProps, которая передает свойство count в компонент:
function mapStateToProps(state) {
return {
count: state.count,
}
}
mapDispatchToProps()
mapDispatchToProps() - это функция, которая принимает диспетчер dispatcher
из хранилища Redux и возвращает объект свойств, которые представляют действия, доступные в компоненте. Она позволяет компоненту отправлять действия в хранилище и обновлять состояние приложения. mapDispatchToProps()
вызывается только один раз при инициализации компонента.
Например, вот пример функции mapDispatchToProps, которая передает свойство incrementCount, которое вызывает действие INCREMENT:
function mapDispatchToProps(dispatch) {
return {
incrementCount: () => dispatch({ type: "INCREMENT" }),
}
}
После определения функций mapStateToProps()
и mapDispatchToProps()
они могут быть переданы в функцию connect()
для связи компонента с Redux-хранилищем:
import { connect } from 'react-redux';
...
export default connect(mapStateToProps, mapDispatchToProps)(MyComponent);
Теперь компонент MyComponent может получать доступ к данным и действиям из хранилища Redux через свойства (props), которые определены в функциях mapStateToProps и mapDispatchToProps.
connect()
connect()
связывает mapStateToProps()
и mapDispatchToProps()
с компонентом и передает необходимые поля и методы в него. Возвращает она новый компонент-обёртку для вашего компонента.
connect() - это функция из библиотеки react-redux
. Она создает новый компонент, который оборачивает исходный компонент и обеспечивает ему доступ к состоянию и действиям из хранилища.
Если же у компонента нет необходимости в передаче ему mapStateToProps
или mapDispatchToProps
передавайте undefined
или null
в него.