Mikhail Osher: как они окажутся в props, если их не будет в mapStateToProps? сигнатура функции connect - (mapStateToProps, mapDispatchToProps)(Component). Про this все хорошо расписано в учебнике Кантора, на который ссылка есть.
Febox: именно! Только поправлю: не "на бэкэнде", а у вас на девелоперской машине (там где вы разрабатываете код) скорее всего будет стоять node.js, с которым идет пакетный менеджер npm, с помощью которого вы скачаете, и так как у вас установлен node.js сможете запускать webpack для удобства разработки. В процессе вы будете использовать разные другие пакеты, все это скорее всего так же будет скачано через npm, ибо удобно. А ваш бэкэнд (читай - сервер, который отдает json) - может быть написан хоть на чем. Он может работать в облаке или в другой вкладке в терминале. Он может уметь посылать данные по сокетам, а вы у себя на клиенте сможете принимать данные по сокетом, если напишите механизм, или ... скачаете еще один npm пакет =)
А разве у автора проверка shallowCompare не даст результата: "да, изменилось"? Ведь в редьюсере мы всегда возвращаем новый объект, а это значит, что для List ссылка изменилась... Или я не так понял?
Тестировать, что кнопка кликабельна - по желанию. Здесь как-то мир раскололся =) Сам Дэн [который redux сделал] спрашивал - тестируете ли вы компоненты? (в твиттере)
"пропускать так же фабрики экшенов" - это имеется ввиду не тестировать экшены, а тестировать только reducer (вы это понимаете под "изменения в store?")? Здесь не согласен. Тестировать и экшены и редьюсеры - хорошая идея.
как вы храните данные - это другой вопрос, конечно... Но, можете сделать как советуют в еще одном ответе: хранить строку поиска и результаты для нее (заодно можно и мемоизацию (выборку данных из кэша, так как у вас уже будет результат для текущей поисковой строки) использовать).
Mikhail Osher: субъективно же.. В свое время она мне очень понравилась, есть и тесты и интересный пример. Не согласен с immutable, так как до сих пор не пришел к его полезности, но в целом... что еще там не понравилось? я читал ее очень давно и был ей крайне рад, так как там даже задачки были.
У вас инпуты - дочерний компонент? Есть родитель же, который в props имеет title,number и тд? Получается, что он и id имеет. Создайте в нем функцию save, и на изменениях инпута, если вы хотите делать это постоянно и мгновенно (а я думаю, что вряд ли вы хотите постоянно на каждый чих отправлять запрос на сервер) вызывайте this.props.save( ). Поэтому я и спрашиваю, как у вас устроен компонент? Вы привели только кусочек с инпутами, после изменения текста в них - вы изменяете стейт. Ок. А дальше что? Есть кнопка - "отправить данные на сервер"? или как?
очень много текста.. но информации полезной не очень много. Советую подумать, как сделать иначе формирование элементов. А так же, посмотрите на withRouter (что поможет вам использовать информацию из роутера) - видео-урок тут - https://egghead.io/lessons/javascript-redux-using-...