javascript - 如何检查元素是否有效 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 转译器的输出应该是什么?
这是我的测试笔
解决方案
jsx
主要是语法糖React.createElement
。您可以使用isValidElement
React 提供的帮助器来检查给定element
是否有效。
const isValid = React.isValidElement(element)
推荐阅读
- java - 如何从文件中读取并按字母顺序将该文件的内容排序到链接列表中?
- ios - 为什么我的 drawsana 实例在 IOS 上的 Uigesturerecognizer 上没有响应?
- imagemagick - 如何使用 im4java 执行“tile:”命令?
- php - 创建更好的 URL - .htaccess
- android - LeakCanary 上的“加载泄漏”真的很慢,我有什么替代方案?
- c++ - 如何在 C++ 中创建不同的对象?
- android - 如何使用 ConstraintLayout 布局一排按钮
- c# - 为什么 Q# 不检测 F# 或 C# 命名空间?
- java - BREAK 在 JAVA 中使用正则表达式
- pine-script - 用文本替换带有 plotshape 的箭头