isValidElement¶
isValidElement проверяет, является ли значение элементом React.
1 | |
Описание¶
isValidElement(value)¶
Вызовите isValidElement(value), чтобы проверить, является ли value элементом React.
1 2 3 4 5 6 7 8 9 10 | |
Параметры
value:value, которое вы хотите проверить. Это может быть любое значение любого типа.
Возвращает
isValidElement возвращает true, если value является элементом React. В противном случае возвращается false.
Ограничения
- В качестве элементов React рассматриваются только JSX-теги и объекты, возвращаемые
createElement. Например, даже если число типа42является допустимым React узлом (и может быть возвращено из компонента), оно не является допустимым элементом React. Массивы и порталы, созданные с помощьюcreatePortal, также не считаются элементами React.
Использование¶
Проверка, является ли что-то элементом React¶
Вызовите isValidElement, чтобы проверить, является ли некоторое значение React-элементом.
React-элементы - это:
- Значения, создаваемые при написании [JSX-тега] (../../learn/writing-markup-with-jsx.md)
- Значения, создаваемые вызовом
createElement
Для элементов React функция isValidElement возвращает значение true:
1 2 3 4 5 6 7 8 9 | |
Любые другие значения, такие как строки, числа или произвольные объекты и массивы, не являются элементами React.
Для них isValidElement возвращает false:
1 2 3 4 5 6 7 | |
Необходимость в isValidElement возникает крайне редко. В основном она полезна, если вы вызываете другой API, который только принимает элементы (как это делает cloneElement), и вы хотите избежать ошибки, если ваш аргумент не является элементом React.
Если у вас нет какой-то очень специфической причины для добавления проверки isValidElement, она вам, вероятно, не нужна.
React elements vs React nodes
Когда вы пишете компонент, вы можете вернуть из него любой тип React-узла:
1 2 3 | |
Узел React может быть:
- Элемент React, созданный как
divилиcreateElement('div'). - Портал, созданный с помощью
createPortal - строка
- число
true,false,nullилиundefined(которые не отображаются)- Массив других узлов React
Примечание: isValidElement проверяет, является ли аргумент React-элементом, а не React-узлом. Например, 42 не является допустимым React-элементом. Однако это вполне допустимый узел React:
1 2 3 | |
Вот почему вы не должны использовать isValidElement как способ проверить, можно ли что-то отобразить.