Действие, вызванное, не отправляя это - Redux - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь понять избыточность и у меня есть некоторые сомнения относительно mapDispatchToProps.

Код выглядит следующим образом.

import * as actions  from '../../redux/actions';
import './style.scss'

class Center extends Component {
  componentDidMount() {
    this.props.getCenters();
  }

  ...
}
export default connect(state => ({
  ...state.center,
}),{
  ...actions,
})(Center);

Файл действий определяется следующим образом.

export const getCenters = () => ({
  type: types.CENTERS_REQUEST,
});

Когда компонент монтируется, вызывается this.props.getCenters () и отправляется действие, и все работает, как ожидалось.

Вопрос в том,

В определении getCenters не упоминается отправка. Итак, как это действие вызывается без его отправки?

1 Ответ

2 голосов
/ 25 апреля 2019

Redux внедряет dispatch (неявно) в ваши действия в connect:

export default connect(state => ({
  ...state.center,
}),{
  ...actions,
})(Center);

Если мы немного отвлечемся, то увидим, как это происходит (явно):

function mapDispatchToProps(dispatch) {
    return {
        getCenters: () => dispatch(getCenters())
    }
}

export default connect(state => ({
  ...state.center,
}), mapDispatchToProps)(Center);

В результате getCenters получает dispatch.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...