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

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

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

25 ответов

20 просмотров

А если в другом компоненте где будет использоваться 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 час». Сходи в чат для нубов, там от реактеров тоже вопросов навалом. И совсем не по тс, а по «как какать». Если кроме «ну ты смотри что они творят» у тебя есть другие аргументы — буду рад услышать

Ахахаха

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

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

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

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта