169 похожих чатов

Ребята, всем привет! В родительском компоненте объявляю: const [isError, setError] =

useState('');. Соответственно, присваивается тип string.
Но, когда пробрасываю в дочерний элемент, уже типы не видит и приходится создавать дополнительный файл и ещё раз прописывать типы.
Подскажите, пожалуйста, это так и должно быть? Как можно автоматически пробросить типы?

25 ответов

17 просмотров

А если в другом компоненте где будет использоваться ActiveTest будет объявлено const [isError, setIsError] = useState(1); что пробросится в случае такого автоматического пробрасывания?

Andrey-Zhukov Автор вопроса

Спасибо! По именованию действительно проблема, не обратил внимая. По поводу пробрасывания — получается, пропсы надо типизировать всегда. В моём видении, было бы круто, если бы для isError один раз в родительском компоненте был объявлен тип, а дальше уже передавался по цепочке дочерним элементам. В случае же, если будет, как раз, такое пересечение в одну переменную, тогда и выдавал бы ошибку Typescript

Можешь сделать ErrorContext, в нем прокидывать isError и тип будет подцепляться сам

И так для каждого пропа каждого компонента?

Andrey-Zhukov Автор вопроса

Это средствами React context?

Нет, например если isError будет прокидываться к дочерним компонентам много раз, то почему бы не использовать context. А так да, для всех случаев не подойдет

Вопрос просто был не про это

Да, сейчас понял. В следующий раз внимательнее читать буду

Но использовать ActiveTest может использовать сколько угодно родителей, и кто из них важнее? Ну допустим в рамках одного проекта это еще можно было бы как-то представить, везде подсветить ошибку, а если это компонент вынесен в библиотеку, и используется в двух проектах в одном isError строка, в другом число?

Компоненты — это функции от пропсов. Они (компоненты) нужны, чтобы переиспользовать и изолировать код. Дочерние компоненты — это вложенные вызовы функций, как foo = () => bar(). Никто и ничто не может предугадать при объявлении функции/компонента, как и где ты будешь их вызывать. Это идея функций. Ты обьявил её один раз и вызываешь скол ко угодно раз, передавая разные аргументы. И для корректной работы функции в тс тебе нужно явно указать, какие параметры принимает функция (пропсы принимает компонент). Теперь перечитай свой вопрос

React thinking реально ухудшает понимание типов (((

Завязывай

Понимание типов ухудшает отсутствие опыта

React thinking — это как? Что в нём ухудшает понимание типов?

Феникса на него нет

Ты лучше объясни, почему у бэкендеров не возникает вопросов с тс? Почему вопросы только по реакту в большинстве случаев?

Кек

*в дурку его *

Потому что реакт — это модно. Сравни количество курсов «реакт за 21 час» и количество курсов «бэк на коа с монгой и графкуэл за 21 час». Сходи в чат для нубов, там от реактеров тоже вопросов навалом. И совсем не по тс, а по «как какать». Если кроме «ну ты смотри что они творят» у тебя есть другие аргументы — буду рад услышать

Ахахаха

Я читаю чат ноды. Там по типам почти нет вопросов. А весь этот джс - либо нода, либо браузер, либо нейтив... Вопрос мой по поводу бэка - прежний

Не понимаю тебя, увы

Я о том что либо у нодеров всё хорошо с ТС в их либах, либо они умеют в типы без ТС комьюнити? Одно из двух, или видишь третий вариант?

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

Похожие вопросы

Обсуждают сегодня

function LoadMemoryFromInet2( f:TMemoryStream; const url:string; var e:string ):Boolean; var http:TIdHttp; LHandler: TIdSSLIOHandlerSocketOpenSSL;begin Result := fals...
Александр Смоляков
1
Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Я вот подумал. SSE выполняет операции максимум с 64-битной точностью. А FPU - всегда с 80-битной. Разве не должно быть FPU точнее тогда?
The Bird of Hermes
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
как быть с принтером? такой подход прокатит?
zamtmn
12
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
This is a big issue. Just by being a citizen of a country, you are denied to contribute to Open Source software: https://youtu.be/L5Ec5jrpLVk?si=1iIuHnMPbCB4anV-
Sharuzzaman Ahmat Raslan
72
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Карта сайта