Работа с историей, локацией и приватными роутами в React-router 6

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 ก.ค. 2024
  • React Router предоставляет хук useNavigate, который возвращает функцию для навигации между страницами. Есть также компонент Navigate для редиректов. А с помощью навигации и объекта location можно организовать защищенные страницы - только для авторизованных пользователей.
    00:00 Введение
    00:43 История и кнопка "Назад"
    03:38 Параметры навигации
    06:15 Переадресация с Navigate
    07:43 Объект location
    09:43 Приватные роуты
    Мои курсы по вебу с купонами:
    ✅ mishanep.com/
    📢 Поддержка канала:
    www.tinkoff.ru/rm/nepomnyasch...
    paypal.me/mishanep

ความคิดเห็น • 127

  • @user-zw5xx6fl5d
    @user-zw5xx6fl5d ปีที่แล้ว +22

    0:56 - кнопка назад
    6:25 - переадресация
    7:50 - объект Location
    9:53 - приватные роуты
    16:25 - упрощенная авторизация с createContext
    18:18 - создание prop value
    19:54 - кастомный хук useAuth
    20:47 - использование контекста
    25:39 - объяснение авторизации
    27:19 - о коммитах на github

  • @SiriScare
    @SiriScare 11 หลายเดือนก่อน +11

    Занимаюсь уже который день по этим урокам и тихо офигеваю, насколько оказывается качественно можно делать учебные материалы. Не могу больше молчать. Это офигенно!!
    Где ж ты был все это время, родной.

  • @lightinthedark5708
    @lightinthedark5708 2 ปีที่แล้ว +73

    Превосходное изложение материала, не перестаю радоваться вашему присутствию в TH-cam. Спасибо, Михаил.

    • @mishanep
      @mishanep  2 ปีที่แล้ว +1

      Спасибо и Вам на добром слове =)

  • @user-fs1pm5oe5s
    @user-fs1pm5oe5s 2 ปีที่แล้ว +11

    Не знаю, может я плохо ищу, но я не находил настолько качественных рускоязычных материалов по данной теме. Просто нет слова, Миш, огромнейшее Вам спасибо за Ваш труд!

  • @volodymyrvorona2250
    @volodymyrvorona2250 2 ปีที่แล้ว

    Спасибо за Ваши старания!

  • @ilyaprotsenko1023
    @ilyaprotsenko1023 2 ปีที่แล้ว

    Спасибо огромное за ваши старания!

  • @sergeikurankov8072
    @sergeikurankov8072 2 ปีที่แล้ว

    Супер урок! Спасибо Михаил!

  • @user-gu7rh5nm7c
    @user-gu7rh5nm7c 2 ปีที่แล้ว

    Михаил, спасибо большое за лекцию!

  • @user-oc8js5gy1f
    @user-oc8js5gy1f 2 ปีที่แล้ว

    Шикарный канал. Спасибо вам!

  • @alsusayfulina1865
    @alsusayfulina1865 ปีที่แล้ว +2

    Даже на платных курсах такого качества материала не получаешь, спасибо, это очень полезно!

  • @user-ky4vq5jm5u
    @user-ky4vq5jm5u 2 ปีที่แล้ว

    От души душевно. Хорошие уроки, спасибо.

  • @user-yt6ub5qv9u
    @user-yt6ub5qv9u ปีที่แล้ว

    Спасибо за подробное объяснение!)

  • @user-mg1du2vh6x
    @user-mg1du2vh6x 2 ปีที่แล้ว

    Отличный канал, автору большой респект!

  • @user-iy2hd6ix9j
    @user-iy2hd6ix9j 2 ปีที่แล้ว +15

    Круто!) такой хороший темп Вы задали, что каждый день проверяю, вышло ли новое видео!) Спасибо!

  • @jamesrodrigez9548
    @jamesrodrigez9548 2 ปีที่แล้ว

    Как всегда познавательно !

  • @user-cb1fo4yq5t
    @user-cb1fo4yq5t 2 ปีที่แล้ว

    Ты лучший! Всегда все по полочкам!

  • @user-cr1pq1wz8v
    @user-cr1pq1wz8v 2 ปีที่แล้ว +1

    спасибо большое! Очень информативно

  • @user-qc1cn4dl8q
    @user-qc1cn4dl8q 2 ปีที่แล้ว

    Михаил, огромное спасибо за Ваш труд. Отличное видео.

  • @MykolaVer
    @MykolaVer 2 ปีที่แล้ว

    Очень хорошее объяснение материала! Спасибо буду смотреть дальше!

  • @user-jk4ij2yh4f
    @user-jk4ij2yh4f 2 ปีที่แล้ว

    Всё отлично изложено и понятно, супер контент, спасибо вам большое

  • @user-bp7jb5of5d
    @user-bp7jb5of5d 2 ปีที่แล้ว +2

    Михаил, спасибо за урок. С нетерпением жду следующего видео.

  • @mkhab1b
    @mkhab1b ปีที่แล้ว

    Очень информативное видео. Спасибо большое за проделанную работу !!!

  • @user-eg2pz4wk8z
    @user-eg2pz4wk8z 2 ปีที่แล้ว

    Лучшая подача информации

  • @andrewsmal5173
    @andrewsmal5173 2 ปีที่แล้ว

    Просто нет слов!!! Спасибо

  • @RBBoxing
    @RBBoxing 2 ปีที่แล้ว

    очень полезная информация по работе с пакетом react router version 6, благодарю

  • @vlasovdanildev
    @vlasovdanildev 2 ปีที่แล้ว +1

    Михаил, вы лучший!

  • @lyudmilabukhvalova8427
    @lyudmilabukhvalova8427 2 ปีที่แล้ว

    Просто супер, спасибо!

  • @mrrappbit
    @mrrappbit 9 หลายเดือนก่อน

    Спасибо, очень интересно посмотреть 😊

  • @Kain9111
    @Kain9111 2 ปีที่แล้ว

    Михаил, большое спасибо, как всегда спасаете)))

  • @user-vm4cv5ku3n
    @user-vm4cv5ku3n 2 ปีที่แล้ว +13

    Что-то слишком часто Вы нас балуете годным контентом )
    Огромное спасибо , однозначно лайк )

  • @sergey9784
    @sergey9784 10 หลายเดือนก่อน

    Михаил спасибо!!!

  • @DmitryA
    @DmitryA 2 ปีที่แล้ว

    Очень помогло в понимании, как это всё работает вместе. Спасибо.

  • @iJoise
    @iJoise 2 ปีที่แล้ว +1

    Твой канал очередное открытие для меня!) Всё думал когда сесть за доку и посмотреть что там нового, но с тобой всё становится проще:)))
    Развития твоему каналу))

  • @iamcaptain7115
    @iamcaptain7115 ปีที่แล้ว

    Спасибо, Михаил!🤘

  • @valerian6943
    @valerian6943 2 ปีที่แล้ว

    Отличная информация

  • @vladimirmartynyuk5476
    @vladimirmartynyuk5476 2 ปีที่แล้ว +1

    Большое спасибо, после обновления роутера не мог понять как с ним работать, ваш плейлист по новому роутеру как спасательный круг !)

  • @user-cs2nu7ob7n
    @user-cs2nu7ob7n ปีที่แล้ว

    Это не видео, это - золото. Вы супер

  • @andreydolzhenkov4308
    @andreydolzhenkov4308 ปีที่แล้ว +1

    Огромное спасибо, по React много материала смотрю за последние время , и очень много искал как раз именно эту тему с роутами , авторизацией и работой с приватными роутами, очень круто и понятно объясняете!
    И благодаря вам теперь это как дважды два 😀
    Огромное спасибо за такой качественный и крутой материал 👍

  • @user-en4cc9jg5c
    @user-en4cc9jg5c ปีที่แล้ว +1

    Какие прекрасные уроки! Прохожу с их помощью урок по созданию SPA со странами ) Спасибо!!!

  • @user-yp3sc7bl5z
    @user-yp3sc7bl5z 2 ปีที่แล้ว

    Михаил талант обучения, очень доступно и понятно, прям нектар для мозга. Информацию с такой подачей можно принимать без отдыха

  • @VaultBoyVaultBoy
    @VaultBoyVaultBoy ปีที่แล้ว

    Отлично, очень полезно, спасибо

  • @tazorprod.934
    @tazorprod.934 10 หลายเดือนก่อน

    Очень интересный урок получился. Прямо с удовольствием действия повторял и читал доп.инфу. Спасибо вам за труд!

  • @user-xq8qk7ss8i
    @user-xq8qk7ss8i 2 ปีที่แล้ว

    То что доктор прописал! Сразу куча вопросов отпала.

  • @vo_skor
    @vo_skor 2 ปีที่แล้ว +8

    Вы для меня находка Михаил!)
    Есть вашим подписчиком с серии видео про Router,которая мне очень пригодилась.
    Отличная подача материала, без воды и по делу 👍
    Как только пройду испытательный, поддержу ваш канал✌️

  • @ammoney159
    @ammoney159 2 ปีที่แล้ว

    Спасибо большое!!!

  • @threehundredbucks3212
    @threehundredbucks3212 ปีที่แล้ว

    уроки огонь

  • @ftblmax2436
    @ftblmax2436 ปีที่แล้ว

    На платном курсе встретил обучение React-router 5, но проект был на React 18 и 5-я версия выдавала ошибки. После этого обратился к ютубу, и как же я счастлив, что мне попались именно вы

  • @olegpavlov4329
    @olegpavlov4329 2 ปีที่แล้ว

    Чувствую, как ростуууууу. Спасибо. Помог разобраться.

  • @SerhiiNesterov
    @SerhiiNesterov ปีที่แล้ว

    Спасибо

  • @user-ic4dk4sp3y
    @user-ic4dk4sp3y 2 ปีที่แล้ว

    Хождение по истории - круто

  • @alexeyser3621
    @alexeyser3621 11 หลายเดือนก่อน

    потрясно

  • @sudactudak5743
    @sudactudak5743 2 ปีที่แล้ว +7

    Редко пишу комментарии, но я просто не знаю, представляете ли Вы, насколько Ваши ролики по React Router полезны (другие видео от Вас не смотрел еще :) ). Мало того, что 6 версия библиотеки почти ни в каких русскоязычных источниках подробно не освещается, так еще и такой полезный контент для новичков, как в этом ролике. Надеюсь, будете продолжать и набирать популярность!

  • @user-un7gi2tn5h
    @user-un7gi2tn5h 2 ปีที่แล้ว

    Лучший!

  • @benchik100
    @benchik100 9 หลายเดือนก่อน

    топ подача!

  • @konglomora3230
    @konglomora3230 2 ปีที่แล้ว

    спасибо!!!!

  • @norwinlol
    @norwinlol 2 ปีที่แล้ว

    Спасибо c:

  • @user-xv1oc1pj3i
    @user-xv1oc1pj3i 2 ปีที่แล้ว

    Спасибо! Классное видео. Было бы здорово, если бы хоть маленько рассказал про HOC.

    • @mishanep
      @mishanep  2 ปีที่แล้ว

      Можно и про hoc, но эта техника несколько устарела. Сегодня для выделения логики используют кастомные хуки и/или редакс

  • @user-gl8qs7qj4k
    @user-gl8qs7qj4k ปีที่แล้ว

    я чуть в колбасу не перекрутился, когда прошлый урок понимал, тьфу тьфу освоил... а этот наверное стреляться буду... но интересные темы автор преподносит!

  • @user-ps2ge3cc5r
    @user-ps2ge3cc5r 2 ปีที่แล้ว

    good

  • @user-oz6xm9zp9d
    @user-oz6xm9zp9d ปีที่แล้ว

    Бля это потрясающе

  • @maxamax5695
    @maxamax5695 10 หลายเดือนก่อน

    спасибо тебе и твоим роликам за то что, мне не нужно смотреть индусов))

  • @protonys
    @protonys ปีที่แล้ว +1

    Хотелось бы вариант, когда все страницы (кроме входа) приватные :) Может есть более красивая реализация такого сценария. Что бы не оборачивать каждую страницу

    • @maxamax5695
      @maxamax5695 8 หลายเดือนก่อน +1

      Такой же вопрос у меня) нашли решение?

    • @protonys
      @protonys 8 หลายเดือนก่อน

      @@maxamax5695 к сожелению, нет

  • @AndranikArshakyan
    @AndranikArshakyan ปีที่แล้ว

    Работа с историей, локацией и приватными роутами в React-router 6

  • @user-tk7qv9rv2c
    @user-tk7qv9rv2c ปีที่แล้ว +1

    Спасибо за видео, подписалась, думаю этот канал будет мне полезен!
    Вопросик: не рекомендуется использовать navigate(-1), а лучше Link, как я поняла, но ведь для Link нужно знать конкретный путь, а если мы хотим просто назад(то есть откуда пришел пользователь) как быть?

    • @mishanep
      @mishanep  ปีที่แล้ว +2

      Если нужна кнопка назад, то navigate(-1) отлично подходит. Иногда предыдущая страница бывает не пригодной для возвращения по каким-то причинам, например, страница оплаты. Но тут надо отдельно рассматривать. Либо в историю такую страницу не записывать, либо отдельную логику прописывать.
      У нас есть state, доступный через location, и мы при каждом переходе можем фиксировать откуда пришли. Соответственно, использовать эту информацию, в том числе и для возвращения на предыдущие шаги.

  • @vitaliyskorickiy8701
    @vitaliyskorickiy8701 2 ปีที่แล้ว

    Не зря я на Вас подписан)) уже не первый раз тушите пожар моего пе@дака

  • @alxkr7937
    @alxkr7937 10 หลายเดือนก่อน

    Приветствую, Михаил. Отличные уроки! Конкретно в этом уроке не могу понять почему не срабатывает replace, когда логинимся. В итоге я могу попасть обратно на страницу логина нажав стрелку назад. Подскажите пожалуйста, в чем может быть причина?

  • @tgmoon
    @tgmoon ปีที่แล้ว

    Михаил, можете пожалуйста рассказать, как сделать так, чтобы все роуты требовали авторизацию, без бойлерплейта

  • @blackwood8816
    @blackwood8816 ปีที่แล้ว

    4 раза переписывал все вместе с видео и только потом догнал, как все работает. Ох, если бы не твой видос, наверное лысым стал бы.))))

  • @proff5147
    @proff5147 ปีที่แล้ว

    Здравствуйте. Подскажите, как зарегистрированному пользователю можно ограничить некоторые страницы?

  • @volselongames4505
    @volselongames4505 ปีที่แล้ว

    Друг а ты не подскажешь как занулить поля в форме после нажатия кнопки submit в redux-form

  • @lesharper8751
    @lesharper8751 2 ปีที่แล้ว

    Спасибо! Интересно, можно ли с помощью React router вызывать обновление страницы, например чтобы сайт увидел пришедшую с сервера куку, на spa

    • @mishanep
      @mishanep  2 ปีที่แล้ว

      Не сталкивался с подобной задачей. Обычно при таком подходе общение с сервером происходит либо посредством REST API/GraphQL, либо через WebSocket.

  • @tsyklop9398
    @tsyklop9398 2 ปีที่แล้ว

    Подскажите. Как это все дружить с редаксом?

  • @aleksprimetv
    @aleksprimetv 2 ปีที่แล้ว

    Это было круто, так четко рассказываешь, вся ифна прям по полочкам раскладывается) Михаил подскажи пожалуйста есть компонент на который попадаем через

    • @mishanep
      @mishanep  2 ปีที่แล้ว

      Приветствую.
      Не совсем понятна логика. Выглядит так, что попав на страницу с конкретной ссылкой (например с id 1) мы можем кликнуть на ссылку, никуда не перейти (id всё ещё один), но захотим сделать новый запрос на сервер? Не очень понятно зачем. Теоретически у нас компонент может иметь также гет-параметры, которые тоже можно добавить в зависимости и заодно сделать частью запроса к серверу.

  • @katyaru7424
    @katyaru7424 2 ปีที่แล้ว

    7:43 вы добавили переадрисацию на другую страницу, в каких случаях это может быть полезно? Почему просто не изменить path ?

    • @mishanep
      @mishanep  2 ปีที่แล้ว

      При разработке нового сайта - не так очевидно. Но если сайт уже живет какое-то время, проиндексирован поисковиками и уже оказался в закладках у посетителей, то просто так менять адреса страниц чревато. И поисковики в ранге могут понизить, и пользователи 404-й не обрадуются.

  • @fl1pp1x
    @fl1pp1x ปีที่แล้ว

    как соединить connected-react-router middleware с react-router v6 в 18 версии реакта? и вообще как я понял conncted-react-router не работает в 18 версии реакта или я просто не могу настроить получая ошибку - Cannot read properties of undefined (reading 'pathname')

  • @user-gj1je7te7s
    @user-gj1je7te7s 2 ปีที่แล้ว

    Благодарю пол дня искал как реализовать провайдер для протектед роута, одни идусы всякую хуйню выкладывают, и тут к тебе попал.

  • @oleksandr_zerov
    @oleksandr_zerov 2 ปีที่แล้ว +1

    Михаил, очень понятная подача материала! У меня появилась одна проблема, которую никак не могу решить: хук useAuth предоставляет null значение для { user, signin, signout }. Пробовал и без хука, напрямую обернуть в , все равно не видит функции. После сабмита формы получаю [Uncaught TypeError: signin is not a function]. Не сталкивались с такой пролемой?

    • @mishanep
      @mishanep  2 ปีที่แล้ว

      Здравствуйте.
      С описанной ошибкой не сталкивался. Авторизация не обязательно в реактовском контексте будет жить. Вариантов много. Чаще встречается вариант с редакс.

  • @amir18n
    @amir18n 2 ปีที่แล้ว

    Михаил, в первую очередь спасибо за проделанную работу! У меня вопрос, а как лучше поступить с приватными роутами, если есть общая разметка. Как обернуть общую разметку?



    Нужно обернуть element Layout в ? Спасибо за ответ!

    • @mishanep
      @mishanep  2 ปีที่แล้ว

      Приветствую, Амир!
      Если вы хотите, чтобы все страницы сайты были приватными, то тогда да, можно попробовать ваш вариант.
      В принципе не обязательно все страницы делать с одинаковой общей частью, подобных "родителей" может быть несколько для разных страниц.
      Хотя возможно вам просто нужно какую-то часть в Layout показывать по условию, а не делать весь сайт приватным (страница авторизации тоже может захотеть какого-то оформления). А скрывать можно по условию, проверяя авторизован ли пользователь, используя тот же хук useAuth.

    • @amir18n
      @amir18n 2 ปีที่แล้ว

      @@mishanep спасибо большое 🙏

  • @user-qp6yp4qk9i
    @user-qp6yp4qk9i ปีที่แล้ว

    жаль, отсутствует код урока

  • @doitbetter7687
    @doitbetter7687 2 ปีที่แล้ว

    У меня вопрос, а если мне надо стилизовать страницу из папки pages и я хочу это сделать через css модули, то мне надо создаваать папочку под каждую страницу и туда уже складывать и саму page и css модуль? или в этом случае как-то по-другому делается?)) Спасибо за урок!)

    • @mishanep
      @mishanep  2 ปีที่แล้ว +1

      Чаще всего стили пишутся на уровне компонентов. А страница просто переиспользует их. При необходимости на уровне страницы могут быть дополнительные стили.
      Посмотрите в сторону css-модулей.

  • @user-ht2bp5no2x
    @user-ht2bp5no2x 2 ปีที่แล้ว

    А пользователь не может подменить данные стейта на клиенте и получить таким образом доступ к приватным роутам? буду признателен если объяснишь

  • @ash1089
    @ash1089 8 หลายเดือนก่อน

    В реальном проекте у нас не будет auth false или true, мы этот аuth получаем асинхронным способом, что делать в этом случае?

  • @user-dl1ii9tp4u
    @user-dl1ii9tp4u 2 ปีที่แล้ว +1

    А какая разница между переадресацией через navigate('ссылка', {опции}) и через ?

    • @mishanep
      @mishanep  2 ปีที่แล้ว +1

      Компонент Navigate предназначен для переадресации мгновенно при попадании на страницу. Метод navigate для событий, вроде клика мыши.

    • @user-dl1ii9tp4u
      @user-dl1ii9tp4u 2 ปีที่แล้ว

      @@mishanep Спасибо за ответ!!!!

  • @user-xf8hc6kk1n
    @user-xf8hc6kk1n 11 หลายเดือนก่อน

    16:43

  • @maximaliev-lomach2994
    @maximaliev-lomach2994 2 ปีที่แล้ว

    и еще вопрос, как сделать так, что бы при перезагрузке страницы не оправлялся запрос на сервер об авторизации пользователя?

    • @mishanep
      @mishanep  2 ปีที่แล้ว

      а чтобы не терять данные авторизации, их обычно хранят в браузерной памяти. Об этом тоже есть видео th-cam.com/video/sdlYNKjCGU0/w-d-xo.html
      В useEffect можно перед запросом на авторизацию можно проверить не авторизованы ли мы в настоящий момент.

  • @d_r_robot
    @d_r_robot 2 ปีที่แล้ว

    Меня почему то при обновлении страницы MainPage выкидывает обратно на Login

    • @mishanep
      @mishanep  2 ปีที่แล้ว

      в упрощённом варианте стейт живёт только в оперативке, и при обновлении авторизация слетает.
      В реальности мы хранили эту инфу в локал сторедж и синхронились бы с ним при обновлении страницы.

  • @moi-nick-zanyat
    @moi-nick-zanyat 2 ปีที่แล้ว

    useContext тут объясняется наверное лучше чем в специальных видео))
    но у меня другая проблема)) так как с сервера через редакс юзер приходит позже, чем отрисовывается компонент, он думает, что юзер не залогинен и всегда возвращает на страницу логина , как решать эту проблему?
    вариант с токеном в локальной памяти тоже не вариант, не успевает отработать запрос на сервер

    • @user-pd6wi9iw7m
      @user-pd6wi9iw7m ปีที่แล้ว

      Привет. Может ты решил данную проблему и можешь рассказать как ее обойти?

    • @moi-nick-zanyat
      @moi-nick-zanyat ปีที่แล้ว

      @@user-pd6wi9iw7m если честно я уже и не помню))

  • @kirshner93
    @kirshner93 ปีที่แล้ว

    объясните подробнее пожалуйста кто знает
    13:46
    на 7строчке - зачем вот такие знаки вопроса после каждого слова?
    fromPage = location.state?.from?pathname

    • @OurFoesShallFall
      @OurFoesShallFall ปีที่แล้ว

      оператор опциональной последовательности

    • @user-ej9vh7ni5t
      @user-ej9vh7ni5t ปีที่แล้ว

      Вадим, это optional chaining. Простыми словами - мы пытаемся получить доступ к from только если state === true. В случае, если state не будет существовать, то у вас не упадет ошибка и не нужно такие кейсы проверять с помощью if, например. Аналогично с pathname - пробуем его достать только если from существует

    • @gramizor583
      @gramizor583 ปีที่แล้ว

      Этот код использует опциональную цепочку обращений (optional chaining) и считывает значение свойства from из объекта location.state, если оно существует, иначе возвращает undefined.
      Если значение location.state не является объектом или у этого объекта нет свойства from, то fromPage примет значение undefined.
      Две знаком вопросов (?.) - это оператор опциональной цепочки. Он позволяет безопасно обходить свойства объекта, которые могут отсутствовать, чтобы избежать ошибок Cannot read property 'xxx' of undefined.
      В данном случае, если location.state не определен или равен null, то вместо ошибки будет возвращено значение undefined, а дальше сработает еще одна опциональная цепочка для свойства pathname.

  • @metall1c
    @metall1c ปีที่แล้ว

    А что означает такая запись:
    ....
    зачем оборачивать в "пустой элемент" ?

    • @mishanep
      @mishanep  ปีที่แล้ว

      В JavaScript мы можем вернуть в качестве значения только одну сущность. Поэтому в случаях, когда сущностей несколько, их надо во что-то обернуть. Не всегда хочется создавать дополнительную разметку, поэтому существует такая штука как React.Fragment. В данном случае вариант является укороченной записью использования React фрагмента.

    • @metall1c
      @metall1c ปีที่แล้ว

      @@mishanep дополнительная разметка - имеется ввиду типа блок ?

    • @mishanep
      @mishanep  ปีที่แล้ว

      @@metall1c да

  • @velikorossnationalist4259
    @velikorossnationalist4259 ปีที่แล้ว

    Код урока бы...

    • @mishanep
      @mishanep  ปีที่แล้ว +1

      Есть репозиторий под плей-лист
      github.com/michey85/youtube-react-router-v6

    • @velikorossnationalist4259
      @velikorossnationalist4259 ปีที่แล้ว

      @@mishanep спасибо Михаил!

  • @user-qj2yg1rn3j
    @user-qj2yg1rn3j 2 ปีที่แล้ว

    Вот зачем убирать useHistory и заменять его на новое название? Нельзя было оставить название

  • @maximaliev-lomach2994
    @maximaliev-lomach2994 2 ปีที่แล้ว

    Добрый день. Вы говорите, что можно реализовать авторизацию через Redux. Как это можно сделать?

    • @mishanep
      @mishanep  2 ปีที่แล้ว

      У меня есть пример с Redux-Toolkit и авторизацией с Firebase th-cam.com/video/ivtbRBEjLW8/w-d-xo.html

  • @user-vn2nx1yq9e
    @user-vn2nx1yq9e 2 ปีที่แล้ว +1

    слыш ты. это хлам, а не видео. чё refresh не показал?

  • @user-cg2vb5ub8d
    @user-cg2vb5ub8d 2 ปีที่แล้ว

    Здравствуйте! Подскажите, пожалуйста, выскакивает ошибка:
    TypeError: Cannot destructure property 'signin' of 'Object(...)(...)' as it is null
    На строчке: const {signin} = useAuth() в компоненте Loginpage.js
    Может знаете, с чем это связано? проверяю целый час, все также как и у вас..

    • @mishanep
      @mishanep  2 ปีที่แล้ว

      Выведите в консоль, что вам возвращает хук. Скорее всего это null, из которого ничего деструктуризацией не вытащить. Полагаю, хук сделан некорректно.

    • @user-cg2vb5ub8d
      @user-cg2vb5ub8d 2 ปีที่แล้ว

      @@mishanep Да, убрала начальное значение null и действительно помогло), а еще неправильно передавала Context, исправила, теперь все работает! Спасибо большое!!😊

  • @_oxios_
    @_oxios_ 2 ปีที่แล้ว

    Супер урок! Спасибо Михаил!