React’s Proptypes является мощным инструментом для разработчиков при создании своих проектов. Его можно использовать для проверки данных, которые компонент получает в качестве входных данных. И убедитесь, что это то, что ожидалось.
Модуль Proptypes содержит набор функций для проверки типов данных, передаваемых как реквизит. И вернуть ошибки, когда проверка не удается. Наиболее распространенным вариантом использования является тестирование того, что требуемые реквизиты предоставляются детскими компонентами.
Proptypes – это внутренний механизм React, чтобы проверить, получает ли компонент правильные типы. Компоненты React Используйте свойство под названием Proptypes
Чтобы настроить проверку типов. Это может быть сделано как для функциональных, так и для классовых компонентов.
import React from "react"; import PropTypes from "prop-types"; const Person = ({ name, age }) => { return (); }; Person.propTypes = { name: PropTypes.string, age: PropTypes.number, }; export default Person; {name}
{age}
Когда дело доходит до поддерживаемых типов. Пакет Proptypes предлагает предопределенные функции проверки. Они охватывают большинство обычных типов. И для более сложных подтверждений у нас также есть возможность определять пользовательские валидаторы.
Основные типы
Это валидаторы для основных типов данных:
Proptypes. any
– Опора может быть чем угодноProptypes.bool
– Опора должна бытьистинный
илиЛОЖЬ
Proptypes.number
– Опора должна быть любымколичество
Proptypes.string
– Опора должна быть любымнить
Proptypes.func
– Опора должна быть функциейProptypes.array
– Опора должна бытьМножество
Proptypes.object
– Опора должна бытьОбъект
Proptypes.symbol
– Опора должна бытьУсловное обозначение
Person.propTypes = { hobby: PropTypes.any, male: PropTypes.bool, age: PropTypes.number, name: PropTypes.string, secretTalent: PropTypes.func, friends: PropTypes.array, wallet: PropTypes.object, skill: PropTypes.symbol, };
Визуализируемые типы
Проверка визуализации типов может ли оформлена оформлена с помощью React. Мы можем указать, если PROP
это элемент React (т.е.
) или что -нибудь еще (т.е. струны, числа и т. Д.)
Proptypes.Element
– реагировать элементProptypes.node
– Все, что может быть отображено. Числа, струны, элементы или массив
Blog.propTypes = { blogTitle: PropTypes.element, blogBody: PropTypes.node, };
Типы экземпляров
Валидатор экземпляра может быть использован для проверки, если PROP
это экземпляр данного класса. Это может быть полезно, чтобы проверить, есть ли PROP
является экземпляром компонента, но он работает только с классовыми компонентами.
Типы сбора
Валидаторы сбора пригодятся, когда нам нужно проверить содержание массива. Это позволяет нам проверить и проверять содержимое массивов или объектов.
Proptypes.arrayof
– Массив определенных элементовProptypes.shape
– объект, содержащий определенные свойства (могут содержать дополнительные свойства)Proptypes.exact
– Объект, содержащий только определенные свойства (не может содержать дополнительные свойства)
Person.propTypes = { friends: PropTypes.arrayOf(PropTypes.string), father: PropTypes.shape({ name: PropTypes.string, age: PropTypes.number, }), dog: PropTypes.exact({ name: PropTypes.string, age: PropTypes.number, }), };
Требуемые типы
Все реквизит
необязательны по умолчанию. Чтобы гарантировать, что определенная опора всегда передается. Мы можем пометить это по мере необходимости, используя Isrequired
валидатор.
Person.propTypes = { name: PropTypes.string.isRequired, age: PropTypes.number.isRequired, friends: PropTypes.arrayOf(PropTypes.string), };
Пользовательские валидаторы
В некоторых случаях нам нужно написать пользовательские валидаторы. Хорошим примером этого является проверка, если пройдет PROP
является действительным адресом электронной почты.
Мы можем определить пользовательский валидатор как функцию, которая принимает 3 аргумента и возвращает Ошибка
Когда проверка не удается.
Person.propTypes = { email: (props, propName, componentName) => { // Regex to test if email is correct if (!/^[^\s@]+@[^\s@]+$/.test(props[propName])) { return new Error( `Invalid prop "${propsName}" supplied to "${componentName}"` ); } }, };
Обеспечение значений по умолчанию
Это просто определить значения по умолчанию для компонента реквизит
. Мы можем сделать это, назначив их DefaultProps
свойство. Следующий пример будет установлен EnglishSpeaker
к истинный
Если мы забудем установить опору.
Person.propTypes = { englishSpeaker: PropTypes.bool, }; Person.defaultProps = { englishSpeaker: true, };
React Proptypes Проверьте, являются ли типы правильными во время выполнения. Это означает, что нам нужно запустить наше приложение, чтобы проверить, правильные ли типы. Кроме того, он проверяет только типы компонентов, которые отображаются. Если какой -то компонент получил неправильный тип. Мы увидим предупреждение в консоли.
Как это трудоемкая задача. Он поддерживается только в режиме разработки. Так что посмотрите на консоль во время развития. Потому что вы не увидите предупреждения в производстве!
Proptypes дает нам много функций, чтобы проверить, получает ли компонент правильный реквизит. Это хороший способ быстро представить тип проверки в проекты React. И сделать приложение более стабильным. Тем не менее, это не идеальный выбор для крупномасштабных проектов.
По мере того, как проект становится все больше, в консоли легко пропустить предупреждения. И ввести нежелательных ошибок в систему. В этих сценариях мы должны рассмотреть проверку статического типа, используя такие инструменты, как Поток или TypeScript Анкет
Оригинал: “https://dev.to/codewithbernard/mastering-react-proptypes-3a1h”