Как проверить, является ли объект выводом JSX? - PullRequest
0 голосов
/ 25 октября 2019

Можно ли проверить, является ли объект JSX, может быть, какая-то функция, которая делает это. Я заинтересован в React и Preact.

var x = <App/>
var y = <div>xxx</div>

Я придумал это:

function isJSX(x) {
   return typeof x.props === 'object' && x.props !== null && typeof x.type !== 'undefined';
}

Есть ли лучший способ? Я не уверен насчет других библиотек, таких как HyperApp и Preact. Надежна ли эта функция? Выход пришел от Бабеля. Есть ли спецификация, показывающая, каким должен быть вывод транспортера JSX?

Вот мое тестирующее перо

Ответы [ 2 ]

1 голос
/ 25 октября 2019
1 голос
/ 25 октября 2019

jsx в основном синтаксический сахар для React.createElement. Вы можете использовать помощника, предоставленного React, чтобы проверить, является ли данный element действительным

const isValid = React.isValidElement(element)
...