Андрей: в then мы имеем доступ к функции dispatch, так как она к нам пришла в аргументе. Раз есть доступ к переменной, значит мы можем ее использовать. Dispatch дает нам необходимое - "диспатчить" тогда, когда данные уже приехали. Что мы и делаем. Целый модуль тянуть или нет - выбор личный, главное знать, что в модуле всего ничего кода =) Лично мое мнение, в текущей ситуации, зачем писать свой модуль и импортировать его так же из файла, когда уже за нас написано и можно просто импортнуть из пакета?) кода то меньше не станет...
WoopsWoops: получше будет, в случае если у вас redux / либо что-то еще в этот компонент скидывают начальное состояние - пустой массив. Тогда от проверки можно отказаться, а когда придут "пропсы" - то все само отрисуется.
R-Oscar: он ответил - componentDidUpdate - проверю у себя на проекте. А по вашему вопросу тогда позже может что появится... Либо можете тоже спросить в твитере напрямую)
Coder321:
Coder321: так точно. Получается, что инструмент выбирается не для решения проблемы, а просто так, потому что "надо". А зачем надо? Я без "троллинга", на полном серьезе. Мы покупаем машину, например, для того чтобы решить проблему расстояний между А и Б. Все инструменты, даже сам JavaScript написан, чтобы решать конкретные проблемы. И если мы выбираем инструмент не для решения проблемы, а просто так - странный выбор. Конкретно redux призван решить проблему управления данными в вашем приложении, если она у вас есть - значит стоит присмотреться, если проблемы управления данными в приложении нет - то зачем redux ?
Илья: по сути все тоже самое, только миддл без наводящих вопросов будет отвечать + тестирование, про промисы хитрые задачки, про оптимизацию можно поговорить, подробнее про "как это работает под капотом react/virtual dom/ redux/ react-router"...
nuclear_kote: не знаю всей картины... но вы всегда можете сохранить this в переменную, обычно пишут const selft = this, и потом внутри, например того же $.ajax success коллбэка можно вызывать self.setState
davidnum95: Это для удобства (а так же для корректной работы react-router-redux), можно использовать push/replace напрямую из browserHistory, а можно таким образом. Сейчас не знаю, насколько актуально использовать react-router-redux, пока еще не решил отказываться или нет.
Андрей: 1 часть: У вас есть mapStateToProps, где вы указываете, образно "на что подписан компонент", потом смотрите в reducer какие action.types могут быть, и далее смотрите файлы с экшенами. Причем в редьюсере могут быть action.types от любых логических элементов вашего приложения ( обычно этого не требуется, но возможность такая есть). Так или иначе, достаточно будет включить middleware с логированием и все встанет на свои места, вы сможете быстро "воспроизвести картинку" что и откуда и таким образом решить задачу. --------- 2я часть: в ответе я уже указал, что вы можете в экшен-крейторе, который относится к юзеру, вызвать экшен-крейтор, который относится к корзине. Таким образом, вы будете у корзины менять, например флаг isLoading на true/false - и ваша корзина останется "незапятнаной" данными об userIsAuthorized... Далее, про частный случай - чтобы не запутаться в объяснениях перепиской - я не очень хорошо выразился, можно просто "пропустить".