Что это значит, когда есть две функции, между которыми находится «стрелочный индикатор функции»? - PullRequest
1 голос
/ 29 мая 2020

Я видел такие примеры стрелочных функций:

people.forEach((person) => {
  console.log(person.id + person.name);
});

, и все это имеет для меня смысл. Но что это значит?

dispatch = (action) => {
      this.setState((state) => reducer(state, action));
    }

Похоже, что action - это параметр, переданный в dispatch (), а затем что происходит в теле функции? Принимает ли он результат редуктора и устанавливает состояние? Если да, то почему? Какой синтаксис? Спасибо.

1 Ответ

1 голос
/ 29 мая 2020

Первый блок кода эквивалентен приведенному ниже коду.

  • people.forEach принимает один параметр, который является функцией обратного вызова. Аналогично второму блоку кода с dispatch

const callback = (person) => {
  console.log(person.id + person.name);
}

people.forEach(callback);

Реализация dispatch может быть такой

//Implementation
const dispatch = (callback) =>{
  const action = "something" // this might sth from somewhere, just get the idea of it
  callback(action)
}

// Similar to people.forEach we have
const callback = (action) => {
      this.setState((state) => reducer(state, action));
} 
dispatch(callback)
  • Они называются функциями высокого порядка
...