Типизация неуправляемой формы в React

  Рет қаралды 8,387

Михаил Непомнящий

Михаил Непомнящий

Күн бұрын

Пікірлер: 24
@victormog
@victormog 2 жыл бұрын
Кратко, качественно и по существу! Однозначно, буду использовать в своих проектах (вместо кучи useState)
@gregpozdnykov3539
@gregpozdnykov3539 2 жыл бұрын
Спасибо за видео, реакт + тс - мастхэв, при этом не так уж и много хороших пособий об этом. Хотелось бы в будущем увидеть что-то о типизации хуков.
@andrewsam224
@andrewsam224 Жыл бұрын
Cпасибо, огромное Михаил!!! Снимайте ещё, очень доступно объясняете. Вы делаете этот мир лучше!!!
@andrewsam224
@andrewsam224 Жыл бұрын
Охереть как круто! Я прям кайфую от разбора.
@andrewsam224
@andrewsam224 Жыл бұрын
Я бы с удовольствием бы посмотрел уроки длинной 40+ минут. Очень качественно. Спасибо.
@STELLS541
@STELLS541 Жыл бұрын
Очень классно и элегантно) 🙏🏻💪🏻
@АндрейФилиппов-з3и
@АндрейФилиппов-з3и 2 жыл бұрын
ой какая же круть, супер полезный контент, низкий поклон правда, на курсах даже не найдешь такого)
@protonys
@protonys Жыл бұрын
Это просто класс! Спасибо!
@nikolaysmolov8031
@nikolaysmolov8031 2 жыл бұрын
Михаил, спасибо за видео! Инфа годная, рассказываешь хорошо, приятно слушать. Успехов!
@andrewsam224
@andrewsam224 Жыл бұрын
Миша, мне кажется твоим голосом нужно вообще все обучалки озвучивать. Очень хорошо поставлена интонация, размеренно плавно уверенно. Красава!!!!
@vadymkononenko685
@vadymkononenko685 2 жыл бұрын
Супер! Спасибо за видео! Лайк! #react #typescript #javascript #js #ts
@alexles5003
@alexles5003 Жыл бұрын
Интересный подход спасибо
@ДмитрийЛавров-ж7м
@ДмитрийЛавров-ж7м Жыл бұрын
Часто бывает, что названия полей в форме соответсвует названием полей в типе используемых данных формы (хоть и не всегда). Сейчас в Вашем примере Вы отдельно объявляете FormFields и LoginFormFields. И там и там одинаковые названия "свойств". Чтобы этого избежать, можно использовать такую конструкцию: type FormFields = { [F in keyof LoginFormFields]: HTMLInputElement }; Тогда, при добавлении нового поля в форму (fullName, например) нужно будет расширить только один тип - LoginFormFields
@profesor08
@profesor08 Жыл бұрын
Фактически получили дыру, так как типизация хоть и есть, но она только на словах и ничего не гарантирует. Если не окажется полей с нужными именами, то получим call property of undefined, прямо в рантайме. Тут надо типизировать сам компонент формы, чтоб в зависимости от переданного ему типа, он требовал бы наличие определенных полей с конкретным именем, ну и соответственно самостоятельно выводил бы свой тип, на основе переданных полей и их имен.
@denissorokin6823
@denissorokin6823 2 жыл бұрын
При такой реализации Form, получается мы не может динамически валидировать вводимые данные, только встроенной валидацией и всю форму?
@DennaRal
@DennaRal 2 жыл бұрын
Мерси
@ringnull
@ringnull 2 жыл бұрын
9:45 formFields откуда берется? ты его не импортишь, откуда он там берется?
@CyberGenius777
@CyberGenius777 2 жыл бұрын
Эти значения приходят из полей форм при onSubmit
@ringnull
@ringnull 2 жыл бұрын
@@CyberGenius777 Каким образом? Я понимаю, что они туда должны приходить, но в элементе просто вызов функции без параметров. Как он понимает, что это именно те значания, которые нужны?
@CyberGenius777
@CyberGenius777 2 жыл бұрын
@@ringnull почитай как форма работает
@ringnull
@ringnull 2 жыл бұрын
@@CyberGenius777 там где-то реф стоит и я не заметил этого или что?
@fergussawyer
@fergussawyer 2 жыл бұрын
@@ringnull вообще то объявляет этот тип прямо в этом файле 6:28, если все еще не понятно, то под видео есть ссылка на код из видео, открой и посмотри
@lexandersuslov1745
@lexandersuslov1745 2 жыл бұрын
Спасибо за видео, узнал дополнительную информацию о типизации ивентов. Попробовал воспользоваться твоим способом, но столкнулся с проблемой. При использовании Rеact Testing Library при тестировании формы в фунции обработчике handleChange падает ошибка event.currentTarget.submitBtn is undefined. Однако в браузере все работает. Пока не нашел в чем причина. Возможно ты знаешь в чем дело? UPD: Нашел решение. В моем случае нужно к искомому элементу обращаться e.currentTarget.elements.submitBtn. Но тогда сам евент достаточно типизировать как обычно, а elemets нужно типизировать как пересечение типов HTMLFormControlsCollection & FormFields
Рекурсивные типы в TypeScript
7:20
Михаил Непомнящий
Рет қаралды 9 М.
Полиморфные React компоненты
11:53
Михаил Непомнящий
Рет қаралды 14 М.
Увеличили моцареллу для @Lorenzo.bagnati
00:48
Кушать Хочу
Рет қаралды 8 МЛН
SIZE DOESN’T MATTER @benjaminjiujitsu
00:46
Natan por Aí
Рет қаралды 4,1 МЛН
Кастомные React-Хуки, useToggle, useLocalStorage
22:20
Михаил Непомнящий
Рет қаралды 20 М.
Валидация форм с react-hook-form в React-приложениях
16:50
Михаил Непомнящий
Рет қаралды 72 М.
Особенности типизации children в React компонентах
9:53
Михаил Непомнящий
Рет қаралды 14 М.
React Hook Form - простая работа с формами
24:04
PurpleSchool | Anton Larichev
Рет қаралды 28 М.
Reselect для оптимизации Redux стора
18:17
Михаил Непомнящий
Рет қаралды 20 М.
React JS #10 Формы (Forms)
13:52
webDev
Рет қаралды 21 М.
Multistep Form Custom Hook With React And TypeScript
28:23
Web Dev Simplified
Рет қаралды 155 М.
Form Validation In React Using YUP Tutorial
14:22
PedroTech
Рет қаралды 95 М.
BEST Ways to Handle and Validate React Forms without a Library
42:38
Увеличили моцареллу для @Lorenzo.bagnati
00:48
Кушать Хочу
Рет қаралды 8 МЛН