mapDispatchToProps() подключает Redux создатели действий к твоему React-компоненту, привязывая их к функции dispatch(). Есть три основных подхода для реализации этого.
const mapDispatchToProps = (dispatch) => ({
action: () => dispatch(action())
})
Это самый явный подход. Ты вручную создаёшь функции, которые вызывают dispatch() с твоим создателем действия. Это даёт тебе полный контроль над тем, как действия отправляются.
const mapDispatchToProps = (dispatch) => ({
action: bindActionCreators(action, dispatch)
})
Redux предоставляет утилиту bindActionCreators(), чтобы автоматически оборачивать создатели действий вызовом dispatch(). Это сокращает количество шаблонного кода, не теряя в читаемости, и особенно удобно, когда нужно привязать сразу несколько создателей действий.
const mapDispatchToProps = { action }
Это самый компактный синтаксис, эквивалентный способу 1. React-Redux автоматически оборачивает всё вызовом dispatch(), когда ты передаёшь объект вместо функции. Это рекомендуемый подход для большинства случаев — он проще и читается лучше всего.
Все три способа делают одно и то же: превращают создатели действий в пропсы, которые при вызове отправляют действия. Выбирай исходя из своих предпочтений и соглашений, принятых в проекте:
bindActionCreators()Синтаксис сокращения объекта для mapDispatchToProps требует, чтобы ты вручную вызывал bindActionCreators() внутри, чтобы обернуть creators действий с помощью dispatch().
Новый — ещё не проверен сообществом
Вы