2016-08-16 5 views
1

Привет Я просто работаю в Redux и в настоящее время я просто запутался о Redux синтаксиса данного в Redux-Чит-лист Redux Cheat Sheet from Egghead:Цепной Arrow Функция в Redux Синтаксис

const actionLogger = ({dispatch, getState}) => 
(next) => (action) => 
{ console.log(action); return next(action) } 

Так что мой вопрос: С чем работают эти «цепные» функции стрелок?

ответ

2

Вы можете записать это как:

const actionLogger = function({dispatch, getState} /* this is store object */) { 
    return function(next) { 
    return function(action) { 
     console.log(action); 
     return next(action); 
    }; 
    }; 
}; 

Так в основном прикованы функции стрелки представляют собой вложенные функции. Это может быть немного запутанным.

Detailed explanation how redux middleware works

+0

Так что я до сих пор путают есть, куда отправка и GetState в конечном итоге в этой вложенной функции? – fisehara

+0

Фактически единственным аргументом, переданным первой функции, является «store». В примере используется [назначение деструктурирования] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment), чтобы получить методы 'dispatch' и' getState'. Вы можете использовать их в последней функции, где вы будете возвращать следующий (действие) ', но обычно вам не нужно использовать' dispatch', потому что это вызовет новое действие, вместо этого вы должны использовать 'next' –