首页 > 解决方案 > 如何检查元素是否有效 JSX

问题描述

是否有可能检查对象是否是 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 等其他库。这个功能可靠吗?输出来自 Babel。是否有规范显示 JSX 转译器的输出应该是什么?

这是我的测试笔

标签: javascriptreactjsjsx

解决方案


jsx主要是语法糖React.createElement。您可以使用isValidElementReact 提供的帮助器来检查给定element是否有效。

const isValid = React.isValidElement(element)

推荐阅读