93 - paginator, постраничный вывод - Практика ReactJS

  Рет қаралды 33,434

IT-KAMASUTRA

IT-KAMASUTRA

4 жыл бұрын

it-incubator.io/education/?ut... - человекоориентированное, честное и профессиональное обучение front-end и back-end разработке гарантированно до трудоустройства за фиксированную стоимость.
Поддержать меня можно на patreon / itkamasutra или оформив спонсорство на данном канале.
Помогайте друг другу вот здесь: t.me/reactjs_samurai
API: social-network.samuraijs.com/
Друзья, постраничный вывод и алгоритмика и математика, которые в него заложены - очень важны для вашего мышления. Постарайтесь это понять. Просчитать логику в голове, на БУМАГЕ. Paginator, paging, постраничный вывод - это касается не только визуализации на UI, но это вам пригодится в будущем, так как эти расчёты постраничной разбивки будут с вами всю жизнь: от rest api до распределённой обработки данных с помощью hadoop.
Тема акутальная. Вспоминаем, как мы делали первую версию постарничного вывода и запрос данных на сервер, вот видео:
• 55 - React JS практика...
Летим, самураи!!!
Уроки по React JS: • Курс "React JS - путь ...
* Сайты:
it-kamasutra.com
it-incubator.eu
samuraijs.com
* Мы в соц. сетях:
itkamasutra
/ itkamasutra
telegram.me/itkamasutra
* Мои личные VK и Insta:
d.kuzyuberdin
/ it.kamasutra.dimych
#tdd #reactJS #тестирование #практика #пример #уроки #курс

Пікірлер: 409
@bitcoin-
@bitcoin- 4 жыл бұрын
Этот формат видео не очень!Когда за тобой повторяешь картинка складывается на ура.Пожалуйста не надо этот формат .В старом формате весь изюм и полезность проекта соц сеть.Спасибо Димыч
@artempavlenko5147
@artempavlenko5147 3 жыл бұрын
+++
@rupert-xxx
@rupert-xxx 3 жыл бұрын
Согласен с посылом твоего комента, но изюм говно конечно
@user-te9ci1tx4x
@user-te9ci1tx4x Жыл бұрын
согласен на 100%
@J-Lany
@J-Lany 7 ай бұрын
Согласна на 100000%
@advhunter2
@advhunter2 4 жыл бұрын
Прошлый формат
@user-je4zx5vf3p
@user-je4zx5vf3p 4 жыл бұрын
Мне такой формат видео не очень зашол. Спасибо за урок
@user-rd4ck6ei2f
@user-rd4ck6ei2f 4 жыл бұрын
Не....мы теряем Димыча...вообще не заходит такой формат..Все равно ты теряешь время когда готовишься и потом снимаешь...лучше как раньше....поэтапно отслеживать изменения кода и смотреть что за собой тянет то или другое изменение гораздо лучше..я давно сделал уже пейджинатор в другом правда ключе запросами на сервак за актуальной информацией но эта тема очень интересна ...так планирую разбивать туДу задачки на страницы..зашло не ок..несколько раз пересматривать пришлось что бы проследить ход процесса..Дима вернись мы все простим :)))))))))))))
@MDFireX5
@MDFireX5 4 жыл бұрын
Вся твоя фишка это объяснения и пошаговые этапы, важна не скорость а качество
@wirexia3454
@wirexia3454 3 жыл бұрын
Можно добавить ещё: useEffect(()=>setPortionNumber(Math.ceil(currentPage/portionSize)), [currentPage]); при уходе со страницы юзеров на другую и при повторном возвращении на неё, пагинация подгоняется под текущую страницу юзеров, которая записана в userReducer, но лучше самим увидеть разницу. P.S.: Спасибо Димыч, раньше скролл добавлял что бы скрыть эту громадину страниц, но такой подход в разы эффектней, теперь тема пагинации меня вовсе не пугает)
@__online7250
@__online7250 3 жыл бұрын
Благодарю, мне пригодился твой код)
@vlad-zf1ev
@vlad-zf1ev 3 жыл бұрын
нужный код, благодарю!
@scarletheavens4606
@scarletheavens4606 2 жыл бұрын
Плюсик в карму!
@alik64
@alik64 2 жыл бұрын
Как раз об этом подумал, благодарю 👍🏼
@TMANandMAISON991
@TMANandMAISON991 Жыл бұрын
или можно внедрить этот код вот так const [portionNumber, setPortionNumber] = useState(Math.ceil(props.currentPage/portionSize))
@arcticmonkey077
@arcticmonkey077 4 жыл бұрын
За старый формат!
@user-nk6ih7uh1h
@user-nk6ih7uh1h 3 жыл бұрын
Если кто-то не понял, что происходит в className span'a, в котором содержаться номера страниц, то подскажу: Дима установил библиотеку classnames для того, чтобы удобнее было добавлять сразу несколько классов одному элементу. Мне почему-то казалось, что этот paginator будет очень легко сходу реализовать, особенно после одного лишь взгляда на твою идею в коде, но что-то пошло не так, поэтому все затянулось. В конце концов все реализовано и понятно. Пагинация, pagination, постраничный вывод (называйте, как хотите) - важная тема, так как она будет дальше использоваться на разных страницах. Лучший курс по React JS и JavaScript. Дима, красавчик, летим
@romajan21
@romajan21 2 жыл бұрын
спасибо!
@RBBoxing
@RBBoxing 4 жыл бұрын
мне лично совсем не удобно было из за того, что весь код компонента который уже написан не помещается на экране по ширине, нормально ничего не отследить не сверить не получалось. И вот про этот момент ничего не сказал import cn from "classnames"; А так большое спасибо конечно за труд!
@webdeveloper7690
@webdeveloper7690 3 жыл бұрын
Про cn, >>> npm i classnames --save-dev
@user-nw6kz6zn3s
@user-nw6kz6zn3s 3 жыл бұрын
не обязательно использовать библиотеку для этого, у меня так работает className={`${currentPage === p ? styles.selectedPage : styles.noSelectedPage }`}
@MonkyKseniya
@MonkyKseniya 3 жыл бұрын
@@webdeveloper7690 только без "-dev", если загрузить в дев, то не будет компилироваться. Я так сделала и пришлось удалять пакет, грузить нормально. У того же Димаса в проекте установлено без дев, это можно посмотреть в package.json .
@iliagrashev681
@iliagrashev681 3 жыл бұрын
@@webdeveloper7690 спасибо огромнейшее!!!)
@ruslanfomin4648
@ruslanfomin4648 2 жыл бұрын
у меня одного пагинатор не отобразился вообще?? уже экспериментировал с css, думая, что он где-то спрятался за фоном, но нет, не показывает. Самое интересное, отступ появился, как будто он там, но невидим.. сижу над этой багой, ломаю голову Уже даже скопипастил код Димыча(пагинатор и его css), не показывает, хоть ты тресни
@MadaraUchiha-vh9yh
@MadaraUchiha-vh9yh Жыл бұрын
вот как реашил. totalUsersCount не нужно менять на totalItemsCount потому что, иначе нужно будет лезть в редюсер, на сколько я понял. в терминале пишем это: npm i classnames --force. сверху пишем: import cn from 'classnames'. а дальше пишем точно такой же код.
@iipofuck2110
@iipofuck2110 Жыл бұрын
cпасибо, что пришлось тратить меньше времени на поиск проблемы)
@maxkos6184
@maxkos6184 3 жыл бұрын
Мое мнение спустя год - Димыч, лучше показывать нативно, в режиме реального времени, ибо так лучше. Например, в Пагинаторе есть строка import cn from 'classnames'; и я то конечно, догадался сделать npm i --save classnames , но вот надо бы озвучивать, а если бы по ходу все было, то мы бы поняли кто такой classnames и зачем его инсталить в проект. Но, ты крут Димыч! Тесты херачишь, настоящий самурай
@peschernuy
@peschernuy 2 жыл бұрын
Так все таки кто он такой и зачем?))
@Aleks-lk1et
@Aleks-lk1et Жыл бұрын
Спасибо с 2022!
@__online7250
@__online7250 3 жыл бұрын
Прежний формат уроков понятнее, пусть даже и дольше) Спасибо за урок! #tdd #reactJS #тестирование #практика #пример #уроки #курс
@maxim.saharov
@maxim.saharov 2 жыл бұрын
@MariTochka
@MariTochka 3 жыл бұрын
прошёл ровно месяц с того, как я начала первое видео этого курса. помню, какой была воодушевленной, курс офигенский и показал прям, что делать!.. но сейчас я чувствую усталость... и вот после этого видео, мне показалось, что это твоя усталость отражается на мне). надеюсь, что мой энтузиазм вновь вернётся, потому что без него идти вперед куда сложнее.
@mariia6820
@mariia6820 4 жыл бұрын
Лучшие уроки по практике ReactJS!
@user-bd4lw9hx3s
@user-bd4lw9hx3s 3 жыл бұрын
Дмитрий, спасибо вам огромное! Вы удивительный человек! Столько силы и ума! Отличные уроки по React - Redux! Благодаря вашим предыдущим урокам получилось самому сделать Paginator, поставив в начале видео на паузу!
@johnmj750
@johnmj750 2 жыл бұрын
Спасибо, Димыч! Сейчас, в 2022 наверное это не актуально, но предыдущий формат в 100500 раз лучше)) В любом случае, спасибо тебе за труды!!! Храни тебя Бог!!!
@shhhamsy2304
@shhhamsy2304 Жыл бұрын
Если вы не поняли что такое cn в то Димыч установил библиотеку classname (установить npm i classnames || yarn add classnames) и стоит прочитать немного документацию этой либы
@user-zq6nr9zy2u
@user-zq6nr9zy2u 3 жыл бұрын
спасибо за всю работы проделанную и которую сделаешь
@ritaravinsky8262
@ritaravinsky8262 2 жыл бұрын
Спасибо! Конечно хочется видеть как ты кодишь и решаешь проблемы в процессе! React, pagination, testing components.
@mykhailostepanishchev6472
@mykhailostepanishchev6472 4 жыл бұрын
Крутой урок ! Большое спасибо !
@rahalmamut01
@rahalmamut01 4 жыл бұрын
Спасибо за практику по реакту!
@user-xs2dx2mh3f
@user-xs2dx2mh3f 3 жыл бұрын
Спасибо за УРОК, очень круто!!!!!!!!!!!!!!!
@semial
@semial 3 жыл бұрын
Лучше, когда ты все показываешь, но и в таком формате есть свои плюсы. Считаю, что тут больше голову надо включать и самому допирать. Молодец, так держать, экспериментируй дальше! У тебя хорошо получается! Спасибо за урок!
@marsonleonardovich4036
@marsonleonardovich4036 4 жыл бұрын
Более сложные темы лучше по старому формату, а простые, которые легко заходят, можно по новому формату. LIKE! Этот урок хорош, тем, что разбираешь не свой код сам!
@user-di9dd7bb4l
@user-di9dd7bb4l 4 жыл бұрын
Спасибо за урок! paginator,постраничный вывод - React JS
@user-tf6jz7hj9d
@user-tf6jz7hj9d 3 жыл бұрын
Спасибо за react paginator. Всё было понятно, в принципе, но да, старый формат гораздо более поучительный, когда можно следить за ходом твоих мыслей, рассуждениями, как ты приходишь к решениям, с какими проблемами сталкиваешься и как их решаешь. Спасибо за курс! Уже близко к концу... :)
@frozeninside5004
@frozeninside5004 3 жыл бұрын
Спасибо ! Согласен с большинством, похоже на то что я сам скачал гит репозиторий и добавил к проекту и сижу рассуждаю что куда и как сделали)
@user-di9dd7bb4l
@user-di9dd7bb4l 4 жыл бұрын
Спасибо за урок!!!! paginator постраничный вывод. Практика React JS
@vladimirww5152
@vladimirww5152 3 жыл бұрын
Круто, очень удобно работает!)
@advhunter2
@advhunter2 4 жыл бұрын
Подобный формат
@amaxe12345
@amaxe12345 4 жыл бұрын
Спасибо Димыч! paginator, постраничный вывод - Практика ReactJS #tdd #reactJS #тестирование
@sergeymalinichev2329
@sergeymalinichev2329 4 жыл бұрын
Отличный курс!!!
@sveta7201
@sveta7201 6 ай бұрын
🤩paginator, постраничный вывод - Практика ReactJS. Лучше как было! Спасибо за уроки!
@user-nk2qz5fb1p
@user-nk2qz5fb1p 3 жыл бұрын
новый формат кайф!
@user-xd6ev4gz2k
@user-xd6ev4gz2k 4 жыл бұрын
формат круто подойдет для старых тем (по сути это старая тема, мы лишь только ее зарефакторили, мне зашло на ура), но если тема новая, то НЕТ, нужно расжевать все))
@user-xs2dx2mh3f
@user-xs2dx2mh3f 3 жыл бұрын
Блин, Димыч, как у тебя сил и энергии хватает такие уроки делать. Ты мега Чел. 93 выпуска прошли как на одном дыхании. Ты мастер доходчивого объяснения. Лайк всем урокам твоим
@user-oh3jc7jq3u
@user-oh3jc7jq3u Жыл бұрын
Полезный выпуск. Спасибо!
@dimitriitkach7697
@dimitriitkach7697 3 жыл бұрын
spasibo za urok - 93 - paginator, постраничный вывод - Практика ReactJS , Both formats are good !
@twowords1681
@twowords1681 4 жыл бұрын
@ Прошёл все 92 урока с осознанием каждой мелочи в React. @ Сломался на сраном пагианторе PS. сложна
@vana__f7570
@vana__f7570 3 жыл бұрын
а математичка говорила учи алгебру и геометрию!!! Математичка ликует)))
@Max-cu6mc
@Max-cu6mc 3 жыл бұрын
то чувство когда сделал пагинатор круче еще на 55 выпуске + еще с роутом в URI с параметром за 30 мин, можно в мидлы наверное
@vadimkurikin5269
@vadimkurikin5269 3 жыл бұрын
@@Max-cu6mc скинь посмотреть. Интересно будет сравнить) Я тоже сделал его сразу, не такой как у Димыча, мой отображает последнюю страницу и +-5 страниц от выбранной. let pages = (currentPage, totalPages) => { let curArr = []; if (currentPage = totalPages) { curArr = [1, "...", totalPages - 4, totalPages - 3, totalPages - 2, totalPages - 1, totalPages] } else { for (let i = currentPage - 2; i {usersPage.currentPage == n ? {getUsers(n)}}>{n} : n == "..." ? {n} : {getUsers(n); setCurPage(n)}}>{n} } )}
@user-cy4cz7zx4m
@user-cy4cz7zx4m Жыл бұрын
Спасибо за урок
@elenaswiderskaya718
@elenaswiderskaya718 Жыл бұрын
Доооолго не могла засесть за проблему переключения по страницам (описана в комментах), но тем не менее - решено! Димыч, спасибо! Полезно реализовать пагинатор (paginator) своими руками, без всяких UI библиотек. Прям чувствую, как мозг включается, а после решения проблемы прям пошел дофаминчик.
@marina.health
@marina.health 2 жыл бұрын
Димыч, спасибо) Мне понравился данный формат видео, наглядно)
@ctumyji9737
@ctumyji9737 4 жыл бұрын
Спасибо за урок! Старый формат понравился больше :) React JS от Димыча - лучший курс!
@is_eliseeva
@is_eliseeva Жыл бұрын
paginator спасибо за урок, Дмитрий!
@eugene-dmitrievich
@eugene-dmitrievich 6 ай бұрын
Спасибо за урок! Было очень полезно. react, redux, pagination
@Snegurjan
@Snegurjan 3 жыл бұрын
Спасибо за урок,я так же за старый формат)))
@user-os6lc1ty1h
@user-os6lc1ty1h 2 жыл бұрын
Мне зашло, досмотрел, потом все сделал сам, от чего получил большое удовольствие, думаю неплохо было бы разбавлять таким форматом
@user-yx7in9nl1d
@user-yx7in9nl1d 3 жыл бұрын
Это хорошо, что про библиотечку classnames не рассказал, самому разобраться было и интересно, и полезно)))
@TedBaggins
@TedBaggins 3 жыл бұрын
Советую тут не мудрить и просто использовать material-ui pagination. Предварительно надо установить их core и lab. Пример компоненты: { props.onPageChange(page); }}/>
@sanpop103
@sanpop103 3 жыл бұрын
Может знаешь ,как там цвет менять кроме 3 которые дефолтные ?
@daryaemelyanova1785
@daryaemelyanova1785 Жыл бұрын
@@sanpop103 , обернуть . А пример theme: const theme = createTheme({ palette: { primary: { main: deepPurple[900], light: deepPurple[400], contrastText: '#fff', } }, });
@daryaemelyanova1785
@daryaemelyanova1785 Жыл бұрын
У
@ivanmiarkulau8320
@ivanmiarkulau8320 3 жыл бұрын
react, redux, paginator, спасибо за урок!)
@esken97
@esken97 4 жыл бұрын
Спасибо Димыч)
@user-pc9bl7uf1l
@user-pc9bl7uf1l 3 жыл бұрын
Благодарю!
@tootlno3774
@tootlno3774 2 жыл бұрын
Очень круто Димыч! Я сначала по своему сделал, потом уже посмотрел видос, до твоего варианта я бы наверное никогда бы не додумался лол, хотя кода получилось столько же)))
@user-vw8gp1tq8o
@user-vw8gp1tq8o 4 жыл бұрын
Такой формат хуже,потому что все слишком гладко,а при разработке обычно есть проблемы и лучше смотреть как их решает человек по опытнее чем Джун)
@user-il4ph3fr6h
@user-il4ph3fr6h 3 жыл бұрын
или недоджун)))
@mikalai_root
@mikalai_root 3 жыл бұрын
@@user-il4ph3fr6h или недотрэйни))
@denysm5599
@denysm5599 4 жыл бұрын
Спасибо за поиски новых решений в подаче материала, но предыдущий формат этого курса по React - был лучше. Материал лучше запоминается, когда код набираешь вместе с ментором))
@alfa_main
@alfa_main 3 жыл бұрын
Очень сложно для понимания, так большинство ютуберов делают контент для уже бывалых ребят, а мне теперь нужно будет как то понять самому что тут к чему) ну всеравно спасибо за видео)
@marlonbrando458
@marlonbrando458 3 жыл бұрын
Комментарий и лайк!
@alexanonymous5823
@alexanonymous5823 3 жыл бұрын
спасибо за постраничный вывод=))
@user-rg8wz2rt9e
@user-rg8wz2rt9e 4 жыл бұрын
Хорошо объяснили, норм формат, но иногда лучше с Димычем код писать. Но нужно сделать npm install classnames
@user-nv4vb5sq7l
@user-nv4vb5sq7l 4 жыл бұрын
spasibo
@piligr1m_ua_
@piligr1m_ua_ 4 жыл бұрын
спасибо
@user-tr8hr4xm1l
@user-tr8hr4xm1l 4 жыл бұрын
Кстати да, Димыч!))) Это философский вопрос 2:10 . Думаю, что пока цели совпадают, то друзья, а когда дело доходит до дележки денег и борьбы за заказчика, то конкуренты
@Aleks-lk1et
@Aleks-lk1et Жыл бұрын
Спасибо! 2022! Урок нормальный, код виден, рассказ понятен. Есть минус - автор может упустить чего-нибудь, а у нас не будет компилиться. Так и случилось. Пришлось почитать комментарии и сделать npm i classnames. Иду далльше.
@user-bl4dl9ke7b
@user-bl4dl9ke7b 2 жыл бұрын
Спасибо
@IvanSuprovich
@IvanSuprovich 3 жыл бұрын
А я еще когда только-только сделали UsersPage сделал пагинатор через slice массива со страницами. Не знаю, насколько это корректно, но оно работает. А этот выпуск просмотрел для общего ознакомления, спасибо, Дим)
@genapolyakov
@genapolyakov Жыл бұрын
правильнее будет написать let [portionNumber, setPortionNumber] = useState(Math.ceil(currentPage / portionSize)); после загрузки страницы или пользователей слетает potionNumber и становится =1. поэтому нужно заменить 1 на Math.ceil(currentPage / portionSize)
@a_mexdiev
@a_mexdiev 2 жыл бұрын
спасибо
@Titanidze17
@Titanidze17 4 жыл бұрын
Спасибо за урок. С костылями лучше. Разжёвано не обязательно, а подводные камни очень важны
@orangedragonthebestraper
@orangedragonthebestraper 2 жыл бұрын
Этот формат Явно лучше , для простых и средних тем - точно ! для сложных этого будет не достаточно!👌😎😎😎
@milter2539
@milter2539 4 жыл бұрын
Урок 93. Пишу свой белорусский социально-экологический проект. Комент как благодарность (:
@vegeman8954
@vegeman8954 4 жыл бұрын
Димыч, я все конечно понимаю!!! Но как твоя компонента меняет setPortionNumber в зависимости от currentPage? Если ты выберешь любую страницу после десятой, при rendere portionNumber = 1 и вся компонента перерисуется в дефолтный вид. Скостим тебе это косяк, на то что ты оставил это нам на закуску) Спасибо за урок!) Мотивируешь! Если кому интересно я решил это таким костылем: const [portionNumber , setPortionNumber ] = useState(Math.floor(currentPage/10) + 1) P.S. Даешь курс на ХУКАХ c правильной архитектурой
@kirillgurin6105
@kirillgurin6105 Жыл бұрын
мегахорош
@piligr1m_ua_
@piligr1m_ua_ 4 жыл бұрын
что такое: import cn from "classnames" ? нашел ответ в комментах : npm i classnames
@kril5903
@kril5903 3 жыл бұрын
спасибо
@peschernuy
@peschernuy 2 жыл бұрын
Спасибо! Выручил!
@marina-ej4qd9kc1wh
@marina-ej4qd9kc1wh 6 ай бұрын
cпасибо!
@dimakalinichenko4913
@dimakalinichenko4913 4 жыл бұрын
Красава
@ole_oli
@ole_oli 3 жыл бұрын
Спасибо Димычь. Бомбим дальше. paginator готов.
@eddyvir4
@eddyvir4 4 жыл бұрын
+ предыдущий формат
@onGrill
@onGrill 3 жыл бұрын
Трудновато, но разобрался. Димыч, спасибо!
@tatianakruglaya6760
@tatianakruglaya6760 4 жыл бұрын
shift + f6 - аккуратно!! - чуть с ума не сошла! Видео супер, только жаль, что не было услышано хоть пару слов о класснеймах( . Формат видео paginator, постраничный вывод - Практика ReactJS мне не зашел т к я неуверенно двигаюсь в обучении и было бы здорово повторять первые шаги! спасибо Димыч за труд!
@Alex-ge7jt
@Alex-ge7jt 4 жыл бұрын
Такой формат тоже хорош! Тем более нужно учиться писать код самим. Тут посмотрели - сделали у себя по памяти. Тем более уже много разжованных видео было до этого. Думаю золотая середина будет чередовать выпуски, например 2 выпуска в старом формате, 1 в новом (или 3 через 1 и т.д.). Спасибо
@ITKAMASUTRA
@ITKAMASUTRA 4 жыл бұрын
Спасибо, хорошая тема
@user-fs1ux7dy6r
@user-fs1ux7dy6r 4 жыл бұрын
paginator, постраничный вывод - лучший курс по React
@hennadiipetrov1967
@hennadiipetrov1967 4 жыл бұрын
Старый формат, но все равно спасибо, Димыч)
@itweb7157
@itweb7157 3 жыл бұрын
сначала сделал свой, потом сделал как у Димы (со своими усовершенствованиями)... Дима, спасибо! #paginator, #постраничныйвывод - #Практика #ReactJS
@user-pk3tl6nu4l
@user-pk3tl6nu4l 2 жыл бұрын
Мы конкурентные друзья :D Конкурируем но по дружески :)
@tema_skakun
@tema_skakun 10 ай бұрын
Дима, спасибо за урок) возможно кого-то тоже бесит, что после ухода со страницы users пагинатор сбрасывается на 1. исправьте код: let [portionNumber, setPortionNumber] = useState(Math.ceil(currentPage / portionSize)); #reactJS #тестирование #практика #пример #уроки #курс
@chaikadxport
@chaikadxport 2 ай бұрын
Почему после ререндера компоненты значение useState сбрасывается?
@tema_skakun
@tema_skakun 2 ай бұрын
@@chaikadxport чтобы понять, как помочь мне нужно немного больше информации. если вы спрашиваете о кейсе со сбросом номера страницы, то на сколько я помню (а видео я смотрел больше полугода назад) Димыч по умолчанию в useState поставил 1 => вы перерендерили компонент => вы оказались на первой странице. если вы используете решение, которое я предложил выше, будет вам счастье. или же вы спрашиваете об ошибке в работе useState вообще, то у этого может быть много причин, например: Неправильное использование хуков: Убедитесь, что вы используете хуки useState внутри функционального компонента и вызываете их всегда в одном и том же порядке. Не пытайтесь изменять их значение напрямую. Побочные эффекты: Если вы имеете побочные эффекты, такие как асинхронные запросы или подписки, они могут привести к обновлению компонента, что может привести к повторному вызову функции и сбросу значения состояния. Для управления побочными эффектами используйте хук useEffect. Перерендер по причине изменения props: Если компонент перерендеривается из-за изменения его пропсов, это также может привести к сбросу значения состояния. Убедитесь, что вы правильно управляете пропсами и используете React.memo или shouldComponentUpdate, чтобы предотвратить ненужные перерисовки. Использование ключей при маппинге списка компонентов: Если вы отображаете список компонентов с помощью map и каждый элемент не имеет уникального ключа, React может считать, что это новый компонент и создаст его заново, что приведет к сбросу состояния. Изменение стейта вне React-а: Иногда стейт может казаться сброшенным из-за изменений, произошедших вне React-а, например, при использовании глобальных переменных или неправильном управлении данными из других источников.
@razlond159
@razlond159 3 жыл бұрын
Поскольку с видео, честно говоря, почерпнуть что-то сложно, предлагаю тем кто был в неком замешательстве после просмотра как и я, взглянуть на react-paginate. Очень понятная пагинация, легкая + сделаете сами и по-своему
@xtereone
@xtereone 3 жыл бұрын
Димыч Красава!)
@xtereone
@xtereone 3 жыл бұрын
Мне нравится формат когда вы уже сделали, а мы потом пытаемся сами это реализовать
@user-fs4sl5my1o
@user-fs4sl5my1o 4 жыл бұрын
Всё было понятно, но всё таки старый формат был лучше ! Будет видео про styled-components ?
@ITKAMASUTRA
@ITKAMASUTRA 4 жыл бұрын
Уже после 100 выпуска!
@user-fs4sl5my1o
@user-fs4sl5my1o 4 жыл бұрын
@@ITKAMASUTRA Преогромнейшая благодарность за твой курс по React и Redux !!! Тебе нужно выступать на конференциях и каких-то митапах ) Я бы сходил послушать тебя )
@user-wd3tl2rx9p
@user-wd3tl2rx9p Жыл бұрын
Димыч, спасибо. paginator, постраничный вывод
@bloody91122
@bloody91122 2 жыл бұрын
То чувство, когда решил сделать сам и получилось как у димыча)) Как-будто взломал пентагон, ей богу XD Спасибо за уроки, друг!
@olegmilkin9694
@olegmilkin9694 2 жыл бұрын
Всё-же лень взяла верх и я просто прикрутил плагин для этого, наврядли такие штуки делаются ручками в проектах, но за старания однозначно спасибо Димычу
@user-ub8yh7ml5m
@user-ub8yh7ml5m 3 жыл бұрын
Сперва я подумал,что этот формат неочень, так как столкнулся с трудностьями в реализации, потмоу тчо до этого повторяешь за Димычем и все идет легко, а тут нужно самостоятельно думать, так вот я столкнулся с проблемой реализации, начал дебажить нашел ошибки и лучше понял материал, так что этот формат сложнее но намного лучше
@fargutvest
@fargutvest 4 жыл бұрын
Pagination номера страничек со стрелочками prev, next Круто Спасибо! React Redux
@n0escape
@n0escape 11 ай бұрын
Описывать и пересказывать по уроку нечего. Могу разве что добавить ниже чуток отредаченный Димын код пагинатора. Еще от себя добавлю, что код Димыча в общем рабочий, только надо проинсталисть библиотеку classnames. Без понятия что она делает, ибо не инсталил. mport React, { useState } from 'react' import s from "./Pagination.module.css"; const Pagination = ({totalItemsCount, pageSize, currentPage, onPageChanged, portionSize = 10}) => { let pagesCount = Math.ceil(totalItemsCount / pageSize); let pages = []; for ( let i=1; i 1 ? { onPageChanged(pages[0]) setCurrentPortion(1) }}>toFirst { currentPortion !== 1 && setCurrentPortion(currentPortion - 1) }}> PREV : null }{ pages .filter(p => currentLeftBorder {p} )) }{ currentPortion < portionCount ? { currentPortion !== pagesCount && setCurrentPortion(currentPortion + 1) }}> NEXT { onPageChanged(pages[pages.length - 1]) setCurrentPortion(portionCount) }}>toLast : null } } export default Pagination;
@vladpobidash
@vladpobidash 4 жыл бұрын
Не, Димыч, не катит! Думал урок 24 минуты, сейчас все быстро сделаю и отдыхать, но... Искал баг, перекопал все что связано с Users, перебрал весь reducer, юзал кучу дэбагов везде где только можно... Ничего не помогло, отыскал коммит, почал по строчке анализировать и вставлять код - заработало! Ошибка была в hook useState(), где на автомате случайно вместо [] напечатал {} ... Но еще до момента поиска этого бага было куча проблем с недопониманием что как. Но, это был один из важнейших уроков, ведь так дэбаг я еще никогда не юзал, такой анализ кода был очень полезен для меня! В любом случае, спасибо, Димыч, за урок!
@viktorshatalov1920
@viktorshatalov1920 4 жыл бұрын
Прошлый формат был лучше... Спасибо за лучший курс по react.js
@user-xs2zw7ze6l
@user-xs2zw7ze6l 2 жыл бұрын
Димыч, летим в космос. У меня будут все юзеры сразу, просто буду скролить вниз, но спасибо, было интересно. У меня за окном война, а я бомблю Реакт. Кабзда какая кабзда
@technical777
@technical777 4 жыл бұрын
Этот формат подходит ( на 93 видео, если бы ты начинал с такого формата, то однозначно не подходит ), пришлось взять лист и ручку прописать формулу, проговорить вслух что бы стало понятно самому себе. Было бы хорошо, если больше твоих уроков ( объяснений ) с задачами аналогичными этой где нужно,что то решить опираясь на явно математическую логику. Задач с решение по программированию с уклоном на математическую логику на KZbin не хватает, Димыч, а у тебя получатся потрясающие видосы.
@user-vj8hj9jk2b
@user-vj8hj9jk2b 2 жыл бұрын
Спасибо за видос. Мне удалось написать универсальный пагинатор по немного другой логике - без разбиения на отдельные порции (без css в playground-е). Проблема была ясна, решений множество. А так-то да - 6 месяцев назад я просто пагинатор Димыча скопировал.... Сегодня перед пересмотром видоса решил написать самостоятельно - и не сразу, но заработало)
@resenpaii
@resenpaii 3 жыл бұрын
Старый формат душевнее. И камера с афйона тоже :)
@MooMonero
@MooMonero 4 жыл бұрын
Привет, можно пожалуйста ещё рассмотреть пример тестирования api сервисов, с axios.create инстансами.Думаю будет не долго и полезно
@user-ix6ic3vp2r
@user-ix6ic3vp2r 2 жыл бұрын
Привет Димычу и всем самураям. По видео. На мой взгляд изложение получилось "рваным" не упорядоченным. И в голове не сложилась детальная картинка. Хотя основная канва понятна. И это не смотря на то что я свой пагинатор уже написал сам. Я столкнулся с его необходимостью еще на этапе отображения страниц 55 урок. Я изучаю твои видосы и в 2022 году и у меня получилось более 3500 страниц по 10 юзеров!!! Сейчас уже более 4000!!! Лучше топи по прежнему. Так понятней. Если кому будет интересно то я реализовал свой пагинатор в виде массива который заполняется один раз, в самом начале, и состоит из элементов тоже массивов - всех чисел входящих в порцию (по терминологии Дмитрия) и все что мне нужно при навигации это выдернуть нужный массив и отобразить все входящие в него цифры и при этом нет необходимости вычислять начальную страницу порции и конечную. Ибо они уже есть.
@MikhailKuklenkov
@MikhailKuklenkov 3 ай бұрын
Благодарю за труд, Дима. #reactJS #тестирование #практика #пример #уроки #курс П.с.: урок не зашел)) #reactJS #тестирование #практика #пример #уроки #курс
React.lazy и React.Suspense, зачем? #94 - ReactJS
32:42
IT-KAMASUTRA
Рет қаралды 39 М.
89 - Тесты, jest, tdd, тестируем reducer - React JS
27:59
Ouch.. 🤕
00:30
Celine & Michiel
Рет қаралды 19 МЛН
Sigma Kid Hair #funny #sigma #comedy
00:33
CRAZY GREAPA
Рет қаралды 38 МЛН
I built the same app 10 times // Which JS Framework is best?
21:58
Fireship
Рет қаралды 2,5 МЛН
87 - shouldComponentUpdate, PureComponent, memo - React JS
31:58
IT-KAMASUTRA
Рет қаралды 38 М.
The Story of Next.js
12:13
uidotdev
Рет қаралды 559 М.
86 - Virtual DOM - React JS
35:22
IT-KAMASUTRA
Рет қаралды 41 М.
Ouch.. 🤕
00:30
Celine & Michiel
Рет қаралды 19 МЛН