Синтаксис, используемый в примере reduxbundler - PullRequest
0 голосов
/ 30 октября 2019

Может ли кто-нибудь объяснить синтаксис в этом примере ниже? Это из документации https://reduxbundler.com/. Часть, которая сбивает с толку - это doUpdateUser: function.

  1. Я предполагаю, что userId и attrs являются параметрами.
  2. Я предполагаю, что => with () - начало функции.
  3. Откуда отправка и apiFetch? Они также передаются?
  4. В теле функции мы вызываем dispatch и apiFetch, вызываемый каждый раз?

Я просто запутался в структуре. Спасибо.

export default {
  // the name becomes the reducer name in the resulting state
  name: 'users',
  // the Redux reducer function
  reducer: (state = [], action) => {
    // ...
    return state
  },
  // anything that starts with `select` is treated as a selector
  selectActiveUsers: state => state.users.filter(user => user.isActive),
  // anything that starts with `do` is treated as an action creator
  doUpdateUser: (userId, attrs) => ({ dispatch, apiFetch }) =>
    dispatch({ type: 'USER_UPDATE_STARTED' })
    apiFetch('/users', { type: 'PUT' }, attrs)
      .then(res => {
        dispatch({ type: 'USER_UPDATE_FINISHED' })
      })
      .catch(err => {
        dispatch({ type: 'USER_UPDATE_FAILED' })
      }),
  // optional init method is ran after store is created and passed the
  // store object.
  init: store => {
    // action creators are bound and attached to store as methods
    store.doUpdateUser()

    // selectors are also "bound" and attached to store as methods
    store.selectActiveUsers()
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...