Функция mapDispatchToProps()
используется для предоставления конкретным создателям действий вашим компонентам React, чтобы они могли отправлять действия против магазина Redux. Он похож по структуре на mapStateToProps()
вы написали в последнем вызове. Он возвращает объект, который сопоставляет действия отправки с именами свойств, которые становятся компонентами props
. Однако вместо возврата части state
каждое свойство возвращает функцию, которая вызывает dispatch
с создателем действия и любыми соответствующими действительными данными. У вас есть доступ к этой dispatch
потому что она передается в mapDispatchToProps()
в качестве параметра, когда вы определяете функцию, точно так же, как вы передали state
mapStateToProps()
. За кулисами React Redux использует store.dispatch()
Redux для store.dispatch()
этих рассылок с помощью mapDispatchToProps()
. Это похоже на то, как он использует store.subscribe()
для компонентов, которые отображаются в state
. Например, у вас есть создатель действия loginUser()
который принимает username
в качестве полезной нагрузки. Объект, возвращенный из mapDispatchToProps()
для этого создателя действия, будет выглядеть примерно так:
{
submitLoginUser: function (username) {
отправка (loginUser (имя пользователя));
}
}
Редактор кода предоставляет создателя действия, называемого addMessage()
. Напишите функцию mapDispatchToProps()
которая принимает dispatch
в качестве аргумента, а затем возвращает объект. Объект должен иметь свойство submitNewMessage
установленное для функции отправки, которое принимает параметр для добавления нового сообщения при отправке addMessage()
.