Реагировать на синтаксис Redux - PullRequest
0 голосов
/ 10 сентября 2018

Допустим, у меня есть действие:

export const getInfoFor = user => {
    return dispatch => {
        dispatch( fetchApi(user) );
    }
}

const fetchApi = user => dispatch => {
    return( dispatch({type: SET_USER}) )  <--- ??
}

Мои вопросы, как dispatch передается в return в fetchApi? Может быть, то, что сбивает меня с толку, это функции двойной стрелки в fetchApi.

Код работает, но я хочу понять, почему он работает.

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Redux thunk - это небольшое промежуточное ПО, которое проверяет typeof из action, которое отправляется в магазин.Если действие typeof является function, промежуточное программное обеспечение вызывает функцию, передавая диспетчеризацию в качестве параметра.

Здесь вы можете увидеть исходный код

0 голосов
/ 10 сентября 2018

Ваша функция верхнего уровня перехватывается промежуточным программным обеспечением Redux-Thunk и передается dispatch, getState, customValues.

Пример пользовательского значения (из GitHub-Redunk-Thunk)

const store = createStore(
  reducer,
  applyMiddleware(thunk.withExtraArgument(api))
)

// later
function fetchUser(id) {
  return (dispatch, getState, api) => {
    // you can use api here
  }
}

Короче говоря, оно получается из промежуточного программного обеспечения Redux-Thunk при возврате функции.

https://github.com/reduxjs/redux-thunk

https://github.com/reduxjs/redux-thunk/blob/master/src/index.js (предоставлено @Nicholas Tower)

...