у кого ошибка типа с dispatch, можно сделать так: в reduxStore: export type AppDispatch = ThunkDispatch в компоненте: const dispatch: AppDispatch = useDispatch()
@Borashvili314 жыл бұрын
Как узнать программистов: 1. человек не моргает три минуты. 2. А потом сразу шесть раз 🤣💓
@ITKAMASUTRA4 жыл бұрын
О май гад)) А моргать надо учиться принудительно... иначе кабзда глазам 👀
@ruslankonychev11373 жыл бұрын
да...порой в глазах аж темнеет, но как же не хочется отрываться от программирования!
@yuritian8830 Жыл бұрын
Прочитал. Стал замечать как моргаю. И специально моргаю.
@n0escape11 ай бұрын
что такое моргать🤣
@brian_alex3 жыл бұрын
Если у кого переполняется стэк, когда пытаетесь сделать follow, unfollow, проверьте, откуда какой именно follow/unfollow вы передаете в dispatch, скорей всего вы передаете туда саму же функцию, а не импортированный follow/unfollow
@petroherasymiv3417 Жыл бұрын
Боже!!! Я два дня просрал, залайкайте, чтобы поднять в топ
@lord83603 жыл бұрын
готовимся к мидлам, а я даже не джун)
@user-wt8sq9om6c2 жыл бұрын
😬😬😬
@PoRoKLusT2 жыл бұрын
Спасибо за видео, учусь по нему. Вычитал из доки: useSelector можно типизировать следующем образом: const reducer = combineReducers({ tasksReducer, filterStatusReducer }); export type Reducer = ReturnType Потом создаем собственный типизированный хук на основе обычного useSelector: import { TypedUseSelectorHook, useSelector } from "react-redux"; const useTypedSelector: TypedUseSelectorHook = useSelector; В дальнейшем используем в приложении useTypedSelector() как обычно используем useSelector(). TS сразу будет показывать что передается в переменную без дополнительных манипуляций. Сделал, всё работает как задумано. ================================================= Чтобы типизировать useDispatch() нужно: В месте где у нас создается store прописать export type AppDispatch = typeof store.dispatch В компоненте прописать const dispatch: AppDispatch = useDispatch() Теперь можно вызывать dispatch в компоненте как обычно с использованием экшена, например dispatch(addTaskAction(task)); Если у вас созданы и описаны экшены он их сам подтянет и будет отображать при наведении какой экшен вызывается, что принимает и возвращает. Если в экшене описан только тип и нет payload, то в типизации экшена нужно добавить payload: null и в самом экшене тоже payload: null. По идее это лишнее и никак не скажется на коде, но без этого ts ругается.
лайк за таймлайны!) И Димыч ИСПРАВЬ НАЗВАНИЕ ТЕМЫ - в уроке про useSelector, а в теме useReducer! Даже картинка к видео правильная. И так же меня поразило как много людей накопипастили в коменты слово useReducer)
@VSJAQ4 жыл бұрын
Димыч, спасибо, что снимаешь видео даже в нынешних сложных обстоятельствах! Мини-бамблби крут! Как и ты ) Лучший урок React + TypeScript / useReducer & useDispatch
@ITKAMASUTRA4 жыл бұрын
Спасибо , ребят! Взаимное спасибо! Летим вместе 🚀
@user-ey6em3my8p3 жыл бұрын
React + TypeScript + useReducer & useDispatch. Спасибо за наглядные примеры! В чем прелесть этого курса, так это масштаб, постоянные улучшения уже написанного, разнообразные подходы :)
@maxim.saharov2 жыл бұрын
Tакой рефакторинг супер! - ощущения облегчения - как будь то выкинул хлам с балкона и теперь все чисто и понятно) У кого что то не получилось - добро пожаловать в мой гит репозиторий - там полностью рабочая версия лежит!
@maxim.saharov2 жыл бұрын
Буду очень рад за поставленные звездочки в нем и приятного обучения самураям)
@maxim.saharov2 жыл бұрын
maxim-saharov - название на гит хабе
@maxim.saharov2 жыл бұрын
ReactKamasutra проект
@ruslanla46543 жыл бұрын
уже жду 3 сезон - хочется увидеть новое интро и новые треки от Димыча)))
@user-bx7rm2rp9g4 жыл бұрын
Димыч, спасибо тебе большое! Как обычно все супер понятно! Летим!
@ITKAMASUTRA4 жыл бұрын
Летим, друзья!! Хорошего обучения
@user-fs4sl5my1o4 жыл бұрын
Огромная благодарность за такой потрясающий материал!!! В названии видео я как понял вместо useReducer должно быть useSelector. Тема рефакторинга потрясающая, useSelector и useDispatch действительно помогают избавиться от лишних оберток и также опракидываний пропсов, + код становится более читабельным как по мне ) Летим в космос ! React + TypeScript
@maxim.saharov2 жыл бұрын
Спасибо, а то я думал что меня глючит) в уроке про useSelector, а в теме useReducer! Димыч ты же можешь исправить название темы, даже картинка к видео правильная. И так же меня поразило как много людей накопипастили в коменты слово useReducer)
@user-mr7eo3cs5m4 жыл бұрын
Димыч, ты молодец! ЖЫВЕ БЕЛАРУСЬ!
@mordred41384 жыл бұрын
Димыч, хочу сказать спасибо вам за ваши уроки, ведь вы очень толково объясняете. Хоть я вряд ли сейчас могу устроится(мне 16), но программирование моё хобби, и этим я буду заниматься всегда
Ура-ура, новый выпуск)) Я посмотрю его еще не скоро, но уверена, что он как и другие, просто бомбический 💥
@ITKAMASUTRA4 жыл бұрын
✊🚀🔥 спасибо за поддержку! Успехов в прохождении!!!
@rmelsov4 жыл бұрын
Божееее какая крутая песня!!!!!!!!! Лайк и коммент! Как я случайно нашел такое сокровище?!?!
@user-je1el3gj9d4 жыл бұрын
После того как начал использовать хуки useSelector, useDispatch HOC'и кажутся такими громоздкими тем более если еще компоненты классовые. Спасибо за ролик!
@andrewbistroff11994 жыл бұрын
Димыч спасибо за лучшие фрии уроки по Реакту, не забрасывай и по чаще их выпускай)))! Летим дальше!!!
@Vnikny4 жыл бұрын
Спасибо Димыч! Держитесь там, мы с вами! React TypeScript Хуки useReduser useDispatch
@viktorshcheplyagin95764 жыл бұрын
Ключевые слова: обожаю React, Typescript, Redux!! Отсебятина: Спасибо большое за твои видео! И вообще, всем белорусским it-блогерам! На удаленке, часто, вы - единственное мое it-общество) Критика: Дымыч, почему ты не пркдотвратил эпидемию макаронавируса в мире? Тыж самурай!
@user-hh8fs6qg9v3 жыл бұрын
Очередной выпуск и очередная крутая информация!!!!! Наилучший курс по реакт!!! useSelector - 🔥🔥🔥 useDispatch - 🚀🚀🚀 TypeScript - 😎😎😎
@antonmaksimau71953 жыл бұрын
больше философии, оч круто react, typescript, usereducer, usedispatch
@danilblack82964 жыл бұрын
hooks, useSelector, useDispatch, React, TypeScript, Redux Димыч - лучший препод в мире!)
@alira29243 жыл бұрын
Лучший урок React + TypeScript / useReducer & useDispatch!!! Спасибо за урок
Очень круто обяснил про useReducer и useDispatch hooks. Спасибо!
@technical7774 жыл бұрын
React + TypeScript refactoring a class component into a functional component using a HOOK | Димыч спасибо за наглядный пример рефакторинга connect, mapStateToProps, componentDidMount на HOOK
@andreykryzhniov7944 жыл бұрын
Отличное занятие по React, Redux, useReducer, useDispath + TypeScript, react-redux
@Snegurjan4 жыл бұрын
Ураааа,новое видео.Лайк до просмотра .Димыч ты крутой!!!💪🏻💪🏻💪🏻
Пришел с 55 серии первого плейлиста что бы попросить проверить SamuraiJS Social Network API. Вроде де бы перестали запросы работать выдаёт ошибку 500, заранее спасибо) Уже всё нормально!) Продолжаю вливать сюда почти всё своё время, хочу догнать вас. По кайфу это занятие, надеюсь меня возьмут на удалёнку куда нибудь. Спасибо тебе огромное) Продолжай бомбить!)
@Ivan-mb3ze4 жыл бұрын
Давно ждал тему useReducer useDispatch в React JS. Спасибо!
@pmtourist65564 жыл бұрын
Дмитрий, продолжай все интересно!
@ITKAMASUTRA4 жыл бұрын
Спасибо за поддержку! 🚀
@batm1x2 жыл бұрын
dispatch не хочет принимать в качестве аргумента thunk creator, только тип AnyAction, еще useEffect бесконечно диспатчит пользователей, хотя вторым аргументом стоит [] для одного вызова. Ничего не понимаю, видимо что-то поменялось, надо разбираться.Подозреваю, что нужно правильно типзировать applyMiddlware На диспатч не ругается при такой типизации const setUsersOnPage = (n: number) => { dispatch(handlingUsers(n, usersOnPage, searchFilter) as unknown as AnyAction) }
@batm1x2 жыл бұрын
типизировать диспатч для отправки санок можно так: export const useTypedDispatch = () => useDispatch() export type TypedDispatch = ThunkDispatch Вопрос по бесконечному срабатыванию useEffect еще стоит
@EgorPomidorov Жыл бұрын
@@batm1x тут опечатка видимо, нужно так const useTypedDispatch = useDispatch()
@startrek94252 жыл бұрын
useReducer(), useDispatch()!!! Спасибо за твою работу, ты крут!!!
@sheshko_pavel2 жыл бұрын
Спасибо за объяснение #useDispatch и #useSelector в #React #bestCourse #реакт #редакс #знатьбудешькруто
Димыч, пусть у вас в Белоруссии все будет хорошо!! Жду новый ролик от тебя очень сильно, ты лучший учитель
@gideonamweich72713 жыл бұрын
узнал о useDispatch, читал, искал видео, а тут видео у димыча.
@kuko9323 жыл бұрын
есть работа!!!!!!!!!!!! летим!!!!!!!!!!!!!!!!!!!!!! плтаная подписка на димыча везде!!!!
@egoregorov79884 жыл бұрын
верым можам переможам)
@kurtmiller774 жыл бұрын
#useSelector #useDispatch очень помогает сократить код! Мегаполезный рефакторинг, пошел внедрять в свой проект.
@ruslanla46543 жыл бұрын
Димыч, спасибо за классное объяснение как всегда !! useDispatch и useReducer Typescript React применяем на практике реальный крутой большой проект
@djmobley6474 жыл бұрын
Димыч, ты лучший, спасибо огромное за курс!!!
@zzhanat49053 жыл бұрын
самый лучший курс от крутого сэнсэя)
@user-xt9nl7no8e3 жыл бұрын
Посмотрел Диму и жить захотелось) React TypeScript useReducer useDispatch useSelector
@user-vj8hj9jk2b Жыл бұрын
React hooks must use! Хуки великолепны, правда тут можно холиварить по поводу чистых компонент - но это такое, бизнес в приоритете. useSelector, useDispatch и очень интересный useEffect - все ясно и понятно). Спс Димычу за качественный контент.
@iliaschet3 жыл бұрын
useReducer и useDispatch - супер, но очень хочется поскорее тему redux toolkit
@user-fs1ux7dy6r4 жыл бұрын
useReducer , useDispatch Летим дальше
@marina-ej4qd9kc1wh7 ай бұрын
Пишите, у кого трудности с трудоустройством, помогу морально.
@VladislavAxt3 жыл бұрын
почему-то у меня useEffect вызвал бесконечную перерисовку компоненты :| решил тем, что вынес на уровень выше. Код был идентичен с кодом на видео
@batm1x2 жыл бұрын
такая же фигня, не понимаю, почему так происходит
@user-hg2sy3wi6t2 жыл бұрын
TS2345: Argument of type 'ThunkType' is not assignable to parameter of type 'AnyAction' если кто шарит, маякните если будет решение нормальное
@user-uc8hn8em5d2 жыл бұрын
нашёл решение ?
@user-hg2sy3wi6t2 жыл бұрын
@@user-uc8hn8em5d +, варик прописать as unknown as AnyAction, либо задать типизацию, в комментах дальнейших видосов есть
@user-uc8hn8em5d2 жыл бұрын
@@user-hg2sy3wi6t ну я заюзал решение as unknown as anyAction, но это выглядит не очень), а решения что предлагает офф документация и stackoverflow не работаю, ну буду дальше смотреть может что-то придумаю
@user-kj9mm2gc3r Жыл бұрын
@@user-uc8hn8em5d вы случайно не нашли решение?
@Marina-1-7 Жыл бұрын
@@user-kj9mm2gc3r Мне помог вот этот совет (один из первых комментариев к видео, после типизации dispatch ошибка ушла): Чтобы типизировать useDispatch() нужно: В месте где у нас создается store прописать export type AppDispatch = typeof store.dispatch В компоненте прописать const dispatch: AppDispatch = useDispatch()
@sergiystadnyk63154 жыл бұрын
Димыч, все супер как всегда. useSelector & useDispatch & like. Кстати у тебя в названии useReducer вместо useSelector. В добавок к импортам, скоро планируеш перейти на абсолютные пути? Вдруг кому-то пригодится: Для "Create React App" нужно создать jsconfig.json в корне проекта. И прописать в нем { "compilerOptions": { "baseUrl": "src" }, "include": ["src"] } после чего импорты можно прописывать из корня: import Button from 'components/Button';
@ITKAMASUTRA4 жыл бұрын
А вон как к файловой реструктуризации придём! Очень скоро начнём приходить! Это изменение тоже сделаем, спасибо
@IlyaVasilikhin2 жыл бұрын
Спасибо огромное.... жаль курс заглох.... подчерпнул для себя много нового React + TypeScript / useReducer & useDispatch
@kek_pupold4 жыл бұрын
С хуками, без хоков и typeScrypt, код выглядит очень сасно
@user-vj8hj9jk2b Жыл бұрын
Ну и еще немаловажный эффект от хуков - меньше контейнерных компонент-оберточек. Вот и UsersContainer компонента стала ненужной, и ее можно смело того ... )
@StepanVorobiov4 жыл бұрын
Я уже жить не могу без хуков, mapState для меня как что то из прошлого (не понимаю как некоторые продолжают их использовать). Спасибо за видео. Хотелось бы вкратце про mobX, а ещё больше про React Native!!! Вперёд Димыч!!!)
@StepanVorobiov4 жыл бұрын
а useReducer то как раз то и не было. И я его как раз не использую. Былоб интересно послушать про то где он действительно нужен!
@StepanVorobiov4 жыл бұрын
Заиспользовал. Нормальная тема особенно когда вокруг пучка компонент мутишь всякую логику и этот useReducer как раз получается редюсером в этом маленьком "приложение". Можно конечно и useState обойтись и кратче получитчя, но с редюсером выразительнее!)
@annagriboedova61423 жыл бұрын
В заголовке указано useReducer, хотя в этом уроке мы его не юзали, надо изменить на useSelector и useDispatch
@Yaroslav-ie3et4 жыл бұрын
Прикольный ты дядька. Продолжай свою работу
@user-vj8hj9jk2b Жыл бұрын
Может кому пригодится - при использовании useEffect: useEffect(() => { requestUsers(currentPage, usersOnPageCount, usersFilter) }, []) Не убирайте(!) пустой массив зависимостей - как на то будут указывать ворнинги - иначе вызов useEffect callback-а будет происходить постоянно. И соответственно, запросы на сервак - тоже. Будьте бдительны)
@TheGena8883 жыл бұрын
по ощущениям хуки - как после бесплатной больницы пришёл в платную клинику.
Эх видел бы я это видео раньше) Прикиньте я из-за одного глобального элемента в state писал целую контейнерную компоненту! А мог просто написать две строчки useSelecor и useDispatch - ору с себя)
@user-pl9bm6pv8z4 жыл бұрын
Spasibo Dimych!!!
@ussa33744 жыл бұрын
Про Протесты, технического лидера и счастливых пользователей...
@podpison32682 жыл бұрын
Как у него follow заработал? Разве там не должно быть рекурсии? P.S. import { follow as followThunk } from '...' решил проблему