Три раза пересмотрел, чтобы понять, какого чёрта тут происходит. Короч, объясняю, как я понял. Смотрите, когда мы обновляем страницу, происходит два телодвижения: this.props.getUserProfile(userId) и this.props.getStatus(userId). Каждый из этих запросов ждет ответа от сервера. Если профиль приходить БЫСТРЕЕ чем статус, то рендер происходит с ОДНИМ НЮАНСОМ - так как сервер нам ещё не прислал ответ со статусом, то в ЛОКАЛЬНЫЙ стейт записывается ПУСТОЙ статус, потому что он у нас в глобальном стейте тоже пустой. Затем, когда уже от сервера приходит ответ со статусом, то происходит новый рендер, где мы видим статус на странице, так как он записался в глобальный стейт и соответственно есть в глобальных пропсах, НО статус в ЛОКАЛЬНОМ стейте НЕ МЕНЯЕТСЯ и остается ПУСТЫМ. В итоге при даблклике в инпуте будет пустота. Тут самое главное понять, что рендер происходит молниеносно. Мы не видим первый рендер с пустым статусом, а видим только итог второго, когда статус уже пришёл и отображается на странице, но не в импуте. Так как локальный стейт уже сформировался с пустым статусом в первом рендере, то во втором рендере статус туда уже не запишется и поэтому будет пустой инпут. Для этого нам и нужен componentDidUpdate, который всегда вызывается при каждом новом рендере. Когда у нас происходит второй рендер, мы сверяем старые пропсы в локальном стейте с новыми пропсами из глобального. Если они различаются, то с помощью setState изменяем пустой статус в пропсах локального стейта на новый статус, который пришел в новых пропсах. Надеюсь, я всё правильно понял, поправьте, если что-то не так. Лайкосик, если помог.)
@hemul10193 жыл бұрын
да, если поставить debugger в componentDidUpdate, обновить страницу, то можно увидить, как меняются пропсы.
@Sergey308383 жыл бұрын
вникнул сам за 40 мин, потом прочитал твой коммент, убедился что правильно все понял спс)
@AndriiNakonechnyi-f3y3 жыл бұрын
От души, разобрался с помощью твоего сообщения! =)
@Max-xj7dw3 жыл бұрын
Отличное обьяснение, но остается один вопрос - почему статус в локальном стейте не меняется когда меняется глобальный? он ведь инициализируется как state: this.props.state, а значит должен меняться когда меняется глобальный стэйт.
@quantumvector17833 жыл бұрын
@@Max-xj7dw Потому что локальный стейт инициализируется при первом рендере и дальше живет своей жизнью. Да, после того, как пришел статус, происходит новый рендер, но локальный стейт остается тем же, он не обновляет данные и сохраняет значение, которые были ему переданы при первом рендере. Для этого нам надо дать указание, при каких условиях он должен обновить данные в локальном стейте, поэтому мы и вводим метод componentDidUpdate где вручную сравниваем старые данные локального стейта с новыми пропсами и если они отличаются, то обновляем локальный стейт.
@Оленка-р2н4 жыл бұрын
Как представлю, сколько времени нужно было потратить на этот курс , записывая видео... Спасибо за эти бесценные знания!!!!
@evgeniyprowork3 жыл бұрын
Если кто то столкнется с тем, что в конце видоса у вас статус не сохраняется после обновления страницы браузера, в файле ProfileContainer не забудьте в userId указать именно ваш ID, который указан в профиле на сайте social-network
@אסתרבובר2 жыл бұрын
Огромное спасибо!!!
@tootlno37742 жыл бұрын
заработало)
@vitwaladzko78972 жыл бұрын
Большое спасибо, мужик!!!
@marinakudlatskaya5255 Жыл бұрын
человечище!!!! спасибо!!
@mamkindotkerАй бұрын
Кстати кто заметил или нет, но каждый кто зарегался в API становиться частью соц сети, поэтому делаем вывод , что все люди в этой АПишке живые. И все что вы пишете в статусе увидят те кто придут после вас, поэтому вы можете оставлять послания в своих статусах для следующего поколения так сказать :D
@oleksiipoltavets7158 Жыл бұрын
Відчуваю - скоро знайду роботу реакт розробником) вже пальці сверблять ) Дякую Дімич за чудовий курс!
@YaroslavEx Жыл бұрын
і як, закінчили курс?)
@ВикторКысса-я8х5 жыл бұрын
Супер видос про componentDidUpdate !!! Чтобы не писать постояно console.log() - можно написать любое выражение которое хочешь вывести в консоль и в конце написать .log , тебе высветит выбрать console.log, выбираешь и у тебя всё автоматом оборачивается в console.log, очень удобно )) Лучшие уроки в 2019 году по React.js и Redux
@ITKAMASUTRA5 жыл бұрын
Хм.. фига себе... проверю!
@БорисЦ-ю8ы5 жыл бұрын
xxx.log и потом сразу Tab нажать и всё, превращается в console.log(xxx); Круто! Возможности Шторма неисчерпаемы )
@UstinBelarus4 жыл бұрын
в вск по-дефолту можно написать лог, потом пробел, потом вписывать то, что надо отобразить
@maximparmon95344 жыл бұрын
В атоме пишем просто букву l (или слово log), затем Tab и мы попадаем сразу внутрь консоль лога, тоже удобно
@-game94064 жыл бұрын
а я вообще с помощью мысли код печатаю
@secondnamefifthname5 жыл бұрын
У тебя ох****ая физиономия! Сразу настроение поднимает. Отличный урок
@ITKAMASUTRA5 жыл бұрын
Ахах) ну круто! Летим!
@is_eliseeva5 ай бұрын
2024-06-02 уже лето, второе лето я изучаю #react. раньше изучала самостоятельно, сейчас изучаю вместе с #itincubator. уже 74 выпуск, четверг, знаний прибавляется, относительно нуля так вообще сдвинулось дело =) буду продолжать двигаться вперед. Дмитрий и комнда, спасибо за мотивацию и поддержку!
@ITKAMASUTRA5 ай бұрын
Успехов! Победа ближе, чем кажется!🤝
@mamkindotkerАй бұрын
Спасибо тебе за урок и за твой позитив! Ты заряжаешь не бросить этот тернистый путь маленького самурайчика! :)
@Parmax8854 жыл бұрын
Огромное человеческое спасибо! Стараемся тебя поддержать, каждый по мере возможностей! Димыч - ты меняешь судьбы людей! Благодарность безграничная тебе - от всей души!
@bugaga81442 жыл бұрын
Моя третья попытка пройти курс наконец поставила исторический рекорд, здесь я еще не был не когда.Бомбим дальше...
@keepworking27056 ай бұрын
тоже третья попытка, но предыдущий рекорд был уроке на 40-м где то)
@bugaga81446 ай бұрын
@@keepworking2705 Давай, давай, я уже fullstack разработчиком стал))
@eugene-dmitrievich11 ай бұрын
Спасибо большое за урок!!! React JS - componentDidUpdate супер
@sergiystebelskiy28635 жыл бұрын
Каждый видос - плюс один год жизни и минус один градус в аду
@ITKAMASUTRA5 жыл бұрын
Супер настрой!! Летим!!!!
@Moroir4 жыл бұрын
С минус один градус важно вовремя остановиться, а то можно Хельхейм устроить)
@gandalf-butStillNotWhite4 жыл бұрын
@@Moroir пропишем условие просто)
@MikhailKuklenkov9 ай бұрын
Благодарю за урок, Дима. componentDidUpdate пушка))
@Matfei-h2o7 ай бұрын
Кайф от того что всё работает, стоит всех тех мучений через которые ты прошёл
@vladv.1985 жыл бұрын
Прикольно, методы жизненного цикла REACT componentDidUpdate надо углубиться!
@orangedragonthebestraper2 жыл бұрын
Респект - Кто то учит безвозмездно - не ожидая обязательной оплаты - Настоящий учитель!
@Vllad_Ko4 жыл бұрын
Полезно использовать componentDidUpdate, только надо помнить про условия выхода, иначе в бесконечный цикл можно въехать
@seriogaromanchykov9451 Жыл бұрын
Спасибо за эти бесценные знания!!!! 2023
@ihorvitaliyovytch79593 жыл бұрын
Спасибо, маленькое видео с большой информацией. componentDidUpdate
@Filin0wl3 жыл бұрын
74% курса. Только вперёд
@denkodatskyi33815 жыл бұрын
React JS - componentDidUpdate Лучшие уроки по React JS & Redux !!! The BEST!!! lessons of React & Redux!!! Programming and Coding!!! Just simply about information technology =)
@АрсенОсипов-ж6щ2 жыл бұрын
API, JS, TS,ajax State, Store, Dispatch ,Connect, Action, Route Provider, Reducer, mapStateToProps mapDispatchToProps, {...state}, Props React Redux ,withRouter redux-thunk Redirect Практика, cookie,login follow-unfollow api redux-thunk High Order Component (hoc) setState, local state compose create-react-app http put, local state componentDidUpdate JavaScript курс React DAL, axios.create Веб разработка разметка best of the best!!! Спасибо за урок :)
@smolhs1586 Жыл бұрын
не отпускало чувство, что Димыч записывал урок в слезах 😔 я закончила уже 73 урока и чувствую себя гораздо лучше, чем годом ранее, когда только осваивала джаваскрипт, поэтому я вам запрещаю плакать, вы замечательный учитель и человек)
@ivanmiarkulau83203 жыл бұрын
спасибо за знакомство с методом жизненного цикла componentDidUpdate!)
@alexanderkozlov74163 жыл бұрын
componentDidUpdate довольно полезный метод React'a. Димыч лучший! Огромное спасибо тебе за труд.
@sos_voice_of_nature Жыл бұрын
Лучшее объяснение React JS - componentDidUpdate
@АртемКулинский-ю4о3 жыл бұрын
Бомблю выпуск за выпуском! Дмитрий очень хорошо все объясняет! Отличный курс по React - Redux! Лучшее, что я видел на просторах интернета! Все понятно, часто забегаю вперед, делаю, потом смотрю как это сделал Дмитрий!
@bogdansereda75682 жыл бұрын
ReactJS, componentDidUpdate, JS. Спасибо Димыч, ты крут. Спасибо за твои труды
Димыч, спасибо за урок и все твои труды))) Тема, посвященная componentDidUpdate, разъяснена грамотно и понятно) Очень надеюсь, что получится трудоустроится и продолжить путь в космос, даже если кто-то говорит, что твоем курсе всё "по-детски". Ну, для кого как. Мне конечно многие вещи еще непонятны, но я считаю, что ты несешь огромную пользу людям и открываешь путь в IT мир. Здоровья и счастья тебе!!!)))
@egorepir3 жыл бұрын
ну что ж летим дальше вверх только в космос
@ГеннадийГорохов-ц8н3 жыл бұрын
Сегодня 29.11.21.г. Сегодня урок был очень полезный продолжаю учиться всё супер!
@АнтонЧижков-ч4л2 жыл бұрын
Устроился?
@ГеннадийГорохов-ц8н2 жыл бұрын
@@АнтонЧижков-ч4л Да привет в феврале, устроился.
@alexeygolovanov61505 жыл бұрын
Димыч, спасибо тебе за крутые уроки!
@Артем-ч7э9ъ3 жыл бұрын
Супер! Раньше боялся и не понимал всех этих методов жизненного цикла компонент, а теперь начал врубаться потихоньку, все проясняется)
@Dozortsev5 жыл бұрын
Очень нравится как ты объясняешь! Всё просто и понятно про componentDidUpdate!
@ГалинаКузнецова-н1и Жыл бұрын
Спасибо огромное за твой вклад в наше образование и становление программистами!!!Димыч, как всегда на высоте
@alik643 жыл бұрын
Как всегда крутой урок и очень хорошая подача материала!🔥🔥🔥🚀 Реакт редакс react redux componentDidUpdate
@Rapterlol5 жыл бұрын
Курс по React JS супер. Димыч Лучший!! Очень часто требуют сделать форму входа на сайт. Ты скоро планируешь это реализовать в проекте?
Спасибо за твой труд! ты создал лучший курс по react и redux)) componentDidUpdate, методы жизненного цикла
@СміхГієни4 жыл бұрын
Я на предыдущем уроке застрял на часов так 6, это кабздец)
@indigosay4 жыл бұрын
красава, так и надо
@ЛусінеАтаджанян3 жыл бұрын
Я тоже, это норма
@Артем-ч7э9ъ3 жыл бұрын
У меня почти каждый урок такая же фигня, думаю это нормально =)
@СміхГієни3 жыл бұрын
@@Артем-ч7э9ъ это может быть не ок, если ты начал сразу с реакта, не зная JS и разметки
@igoralt163 жыл бұрын
Надеюсь эти часы работы окупились и ты устроился
@maksimpl Жыл бұрын
Летим! Спасибо Димыч, все понятно!
@Aleks-lk1et2 жыл бұрын
Спасибо 2022! Иду дальше.
@mykhailostepanishchev64724 жыл бұрын
как всегда очень интересно и позновательно,спасибо ! componentDidUpdate
@zak_475 жыл бұрын
Курс по React JS супер. Все круто! Задоначу с первого же проекта)!
@ivansedakov68235 жыл бұрын
Боже, я день возился с этим, потому что не мог обновить profilepage при смене url... Мог просто почитать документацию DidUpdate или посмотреть Димыча, ахах) Спасибо!
@Elvolvers5 жыл бұрын
Такая же фигня, хоть я и прочитал заранее про DidUpdate, но зациклился при обновлении URL
@dxnght4 жыл бұрын
Очень лаконично, круто и супер понятно! Бомбим!!!
@alexanonymous58233 жыл бұрын
componentDidUpdate класс!!!! спасибо!!!!!
@mrchyt88613 жыл бұрын
componentDidUpdate бомбим)
@БорисЦ-ю8ы5 жыл бұрын
REACT componentDidUpdate, методы жизненного цикла, всё круто!
@ОлександрОпенько-ь6м3 жыл бұрын
спасибо что подсказал как правильно сделать проверку в componentDidUpdate. у меня все свойства менялись после каждого перерисовывания компоненты и не получалось правильно сделать проверку. но я вспомнил что у тебя на канале есть видос, который мне сейчас помог.
@johnmj7502 жыл бұрын
Спасибо, Димыч!!! Дай тебе Бог здоровья!!!
@sergeyistominov58802 жыл бұрын
Плюсик для лучшего ранжирования! =)
@Багвматрицегребанойреальности5 жыл бұрын
Хороший урок по componentDidUpdate
@araikrasoyan7023 жыл бұрын
Спасибо, Димыч, очень интересно всё!
@ХаджимуратОмаров-т1с Жыл бұрын
Важнгейшая тема! Димыч - спасибо за простое и доступное объяснение! Как всегда на высоте😘
@bystryisokol15465 жыл бұрын
классный трик. Димыч лучший. Как всегда Like )))
@dzmitryaliashkevich66642 жыл бұрын
2022 январь, Крутой курс!
@ЭддиД5 жыл бұрын
React JS componentDidUpdate Спасибо за уроки
@dechto12 жыл бұрын
Спасибо. Круто. Жаль что так мало в этом курсе осталось. Придется пересматривать.
@dimaruy29753 жыл бұрын
React JS - componentDidUpdate это круто
@АлексГ-п3ж4 жыл бұрын
Спасибо! P.S. Список ключевых слов: React, Redux, лучшие супер курсы, бесплатно, componentDidUpdate
@andriioliinykyout3 жыл бұрын
Спасибо, Димыч, скоро досматриваю и буду трудоустраиваться!
@Brinzovik2 жыл бұрын
React JS - componentDidUpdate js полезно понятно
@otto-vector3 жыл бұрын
componentDidUpdate подробно. Бесплатный курс по React. Смотреть.
@andreiribac62843 жыл бұрын
04,08,2021 Спасибо за твой труд Димыч!
@AY-rf3ku4 жыл бұрын
Спасибо за видео!:) React constructor ComponentDidMount componentDidUpdate
@amaxe123455 жыл бұрын
Димыч, спасибо за урок! React JS - componentDidUpdate #componentDidUpdate #reactjs
@tema_skakun Жыл бұрын
Димыч, в описании под видео есть опечатка, видно, что писал в запаре. Написано componentDidMount, а должно быть написано componentDidUpdate. вот исправленный текст для описания: Компонент монтируется один раз. А потом, когда в нём меняется локальный стейт либо кто-то извне хочет перерисовать компонент и закинуть в него новые пропсы, => срабатывает метод жизненного цикла componentDidUpdate. Важный момент: этот метод срабатывает уже после отрисовки, то есть находясь в нём мы имеем актуальные самые свежие this.state и this.props. Для того, чтобы у нас была возможность находясь в этом месте проанализировать, а что именно изменилось (пропсы или стейт), React забрасывает в метод componentDidUpdate предыдущие пропсы и стейт (prevProps и prevState). В данном методе жизненного цикла разрешено вызывать setState, но так как это может привести к зацикленности, делать это нужно аккуратно и всегда внутри правильного условия! спасибо за выпуск, мчим дальше)
@АлексейБеляев-к3к4 жыл бұрын
Спасибо за твой труд, React Redux lifecycle methods. ComponentDidUpdate
@ole_oli3 жыл бұрын
awesome lessons. Thanks for best content. componentDidUpdate!!!
@ritaravinsky82622 жыл бұрын
Спасибо огромное! Очень доступно и понятно!
@spacerider94264 жыл бұрын
Спасибо огромное за твой труд! Смотрю дальше!
@mrs.doubtfire81973 жыл бұрын
Это первое видео, которое мне пришлось аж 3 раза смотреть, и то я не уверена, что в итоге правильно всё поняла
@ЖеняЗычков-з1т3 жыл бұрын
странно, в этом видео ведь вообще ничего сложного не было
@ctumyji97375 жыл бұрын
Спасибо за урок! Было познавательно - летим дальше! React JS - лучший курс!
@aymkin5 жыл бұрын
Афигеть, я сегодня получил джобофер. На собесе рассказывал преимущественно то, что получил из видосов у Димыча! Почему я не встретил тебя полгода назад???
@ITKAMASUTRA5 жыл бұрын
Ахаха) бро, ты реактивный какой-то)) рад твоим успехам)) летите космос! Удачи на рабочем месте!!! Супер!
@aymkin5 жыл бұрын
@@ITKAMASUTRA так что обещание задонатить с первой зарплаты становится реальностью)
@Илья-у3г1с4 жыл бұрын
@@aymkin как успехи?
@indigosay4 жыл бұрын
сколько зп?)
@aymkin4 жыл бұрын
@@indigosay за год подняли в три раза
@resenpaii4 жыл бұрын
Каеф))) Было суперактульно. Многие проблемы решит.
@ДенисВладимирович-ы2ъ3 жыл бұрын
Летим componentDidUpdate
@DagestanShop4 жыл бұрын
как раз не раз эта ошибка вылазила max depth exeeded , спасибо за инфу !
@alejandrodsj3 жыл бұрын
Круто!!! componentDidUpdate
@denweb24085 жыл бұрын
Спасибо за уроки!) Очень круто
@fargutvest4 жыл бұрын
componentDidUpdate(previousProps, previousState) - вызывается если изменились либо props либо state Круто, Спасибо! React Redux
@ИльяШумилов-к4ж4 жыл бұрын
В самом начале видео примерно с 45ой секунды Димыч описывает проблему последовательности получения Profile и Status: если первый приходит Status, то все ок, а если первый приходит Profile - то не ок. Мне не понятно одно. Ведь и this.props.getStatus(userId) и this.props.getUserProfile(userId) меняют глобальный state и по идее после каждой смены стейта та часть дерева, которая связана с этими изменениями должна была и так перерисоваться без использования componentDidUpdate. Или тут это как-то с асинхронностью связано?
@Mikhail-v3b6 ай бұрын
смотрю уроки только сейчас, спустя 4 года от их выхода! Некоторые вещи приходиться переделывать читая документацию на новый лад, но уроки все равно супер! Хотел проплатить подписку, но к сожалению не даёт платежная система юмоней, писал в поддержку, сказали что сам пользователь ограничил или что то вроде того(
@TRIZ-Bogatyregold2 жыл бұрын
Когда уже знаешь как это работает на хуках, то все эти жизненные циклы типа componentDidUpdate и прочии - очень тяжело заходят!!! Спасибо Димыч за подробные объяснения, летим дальше!
@interpol21382 жыл бұрын
Тогда похоже плохо знаком с хуками) useEffect представляет собой совокупность методов componentDidMount, componentDidUpdate, и componentWillUnmount.