Присоединение данных (connect)
ОБНОВЛЕНИЕ 2018: Вышло второе издание (современный код и версии пакетов, данное издание УСТАРЕЛО)
На канале так же проводятся бесплатные вебинары, публикуются переводы и авторские материалы, присоединяйтесь!
Связывание данных из store с компонентами приложения
В разделе "Точка входа" шла речь о некой функции connect, которая поможет нам получить в качестве props для компонента <App />
данные из store. Добавим ее:
src/containers/App.js
Назначение функции connect вытекает из названия: подключи React компонент к Redux store.
Результат работы функции connect - новый присоединенный компонент, который оборачивает переданный компонент.
У нас был компонент <App />
, а на выходе получился <Connected(App)>
. В этом не трудно убедиться, если взглянуть в react dev tools.
Взгляните на правую часть скриншота, и вы увидите, что в свойствах (props) нашего компонента <App />
теперь есть метод redux store - dispatch, и объект (в нашем случае, пока что строка) user. Это так же результат работы функции connect.
Давайте еще поиграемся с простым примером. Для начала изменим набор данных:
src/reducers/index.js
затем подкрутим компонент:
src/containers/App.js
Все работает ровно так, как мы указали: в объект user "подключилось" все состояние нашего приложения state, которое сейчас очень простое и описано в src/reducer/index.js.
Прежде чем мы перейдем к созданию actions и взаимодействию пользователя со страницей, давайте поговорим о комбинировании редьюсеров (combineReducers) и создадим реальную структуру нашего будущего приложения.
Исходный код на текущий момент.
P.S. если вы переживаете, что HMR в данный момент не работает, обратите внимание на данный комментарий (это не обязательно, а только для тех, кто столкнулся с проблемой).
Полезные ссылки:
connect (офф.документация)
Last updated