Is it just me or is this text extremely dense and difficult to parse?

I’ve read this text a few times and I am finding it hard to grasp:

Tell us what’s happening:

The mapDispatchToProps() function is used to provide specific action creators to your React components so they can dispatch actions against the Redux store. It’s similar in structure to the mapStateToProps() function you wrote in the last challenge. It returns an object that maps dispatch actions to property names, which become component props. However, instead of returning a piece of state, each property returns a function that calls dispatch with an action creator and any relevant action data. You have access to this dispatch because it’s passed in to mapDispatchToProps() as a parameter when you define the function, just like you passed state to mapStateToProps(). Behind the scenes, React Redux is using Redux’s store.dispatch() to conduct these dispatches with mapDispatchToProps(). This is similar to how it uses store.subscribe() for components that are mapped to state.

For example, you have a loginUser() action creator that takes a username as an action payload. The object returned from mapDispatchToProps() for this action creator would look something like:

Your code so far

const addMessage = (message) => {
return {
  type: 'ADD',
  message: message

// change code below this line

function mapDispatchToProps(dispatch) {
return {
  submitNewMessage: function(message) {

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36.

Challenge: Map Dispatch to Props

Link to the challenge:

Let me give it a try;
So basically what it says is that you have to pass your ACTION functions as a property on the object returned from calling mapDispatchToProps. You do this so that your component can have access to the ACTION function through its props. basically in the component you will access the method as submitNewMessage.
Dispatch is the only way to trigger a state change and you need to pass it an ACTION as an argument.
So ultimately all you’re really trying to do is run your action