Смысл bindActionCreators?

Прочитав документацию так и не понял сакрального смысла данной функции.
Зачем писать так?
function mapDispatchToProps(dispatch) {
	return bindActionCreators({ selectBook: selectBook }, dispatch);
}
export default connect(mapStateToProps, mapDispatchToProps)(BookList);

Если такой код тоже отлично работает:
let mapDispatchToProps = {selectBook};
export default connect(mapStateToProps, mapDispatchToProps)(BookList);
  • Вопрос задан
  • 277 просмотров
Сложность: Junior
Решения вопроса 1
  • @rainur102
    Фронтенд разработчик
    В общем то разницы нет, просто в 1 случае, вы передаете в connect вторым аргументом функцию, она в нее прокидывает dispatch, с помощью bindActionCreaters вы оборачиваете их в dispatch. Фактически можно вместо bindActionCreaters написать:
    function mapDispatchToProps(dispatch) {
      return { 
             selectBook: () => dispatch(selectBook())
       }
    }
    export default connect(mapStateToProps, mapDispatchToProps)(BookList);

    Так же connect может принимать на вход объект вместо функции. Тогда он сам таким образом обернет каждую функцию, которая находится в этом объекте.

    В общем как и написал Михаил, просто 2 идентичные вспомогательные функции, просто из разных библиотек.
    Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Вакансии с Моего Круга Все вакансии
Заказы с Фрилансим Все заказы