React Redux: что означает этот синтаксис - PullRequest
0 голосов
/ 07 ноября 2019

Я реализовал избыточность в приложении реакции, но меня смущает этот синтаксис:

connect(mapState)(MyComponent)

Почему второй параметр должен быть в отдельных фигурных скобках, если оба передаются для подключения?

Ответы [ 2 ]

2 голосов
/ 07 ноября 2019

Так что вы, вероятно, привыкли к синтаксису. Только вы видите все за один шаг. Подумайте об этом так, что это эквивалентно;

const enhancer = connect(mapState);
const YourConnectedComponent = enhancer(MyComponent);

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

const YourConnectedComponent = connect(mapState)(MyComponent)
1 голос
/ 07 ноября 2019

Технически ваш компонент будет подключен к хранилищу redux один раз:

  1. connect вызван с переменной mapStateToProps, которая после этого возвращает функцию
  2. функция будет вызываться с переданным параметром MyComponent.

Из документации redux :

Функция connect () соединяетРеагировать на компонент в магазине Redux. Он предоставляет подключенному компоненту фрагменты данных, которые ему нужны из хранилища, и функции, которые он может использовать для отправки действий в хранилище.

Таким образом redux будет обрабатывать propsсостояние меняется в вашем компоненте автоматически.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...