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

Помните СУХОЙ? Что ж, да, мне это тоже не понравилось. Как и любой другой программист, я искал в Google лучшее решение.

Одним из решений было создание другого файла с определениями данных, а затем использование React's PropTypes.instanceOf. Мне это не понравилось, потому что это добавляет ненужного беспорядка.

Другое решение заключалось в том, чтобы не выполнять проверку свойств в родительском компоненте. Я тоже не согласен с этим, потому что, если какой-то дочерний компонент, глубоко вложенный в дерево родительско-дочерних компонентов, сломается, это будет PIA для отладки, когда проверка данных сломалась!

Я покопался (погуглил) глубже и не нашел многообещающих результатов. Может я плохо гуглию?

В любом случае, как и любой другой разработчик JavaScript, я подумал, что сейчас мое время сиять! Я могу написать свой собственный пакет / миксин / модуль / что угодно, что решает эту проблему! Woohoo! Еще одна капля в море модулей.

Но действительно? Действительно ли НАМ нужен этот модуль? Это необходимо? Этот вариант использования кажется довольно распространенным, тогда почему для него нет решения? А если есть, почему я не могу его найти?

Я откинулся назад, подверг сомнению свои намерения (навыки поиска в Google), выпил кофе и глубоко задумался (~ 5 минут). Ниже мое решение (БЕЗ ВНЕШНИХ ЗАВИСИМОСТИ)!

Довольно аккуратно, не правда ли? У нас есть дочерний компонент в области видимости, мы знаем, что у дочернего компонента есть проверка свойств, поэтому, безусловно, мы можем повторно использовать это в нашем родительском компоненте.

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