检查变量是否是React节点或数组

Tho*_*ggi 32 javascript properties reactjs

我想要一个条件,说明prop是否是一个React节点然后只是放置在组件中的子节点,如果不是,则采取一些操作使其成为一个组件.这样我的组件就能够接受这个prop作为字符串数组或节点数组.

我试图检查是否React.PropTypes.node会返回一个布尔值而它没有.

假设我有一个名为的模块,List并且有一个名为的道具items.我希望能够通过

var items = [
  "One",
  "Two",
  "Three"
]
Run Code Online (Sandbox Code Playgroud)

以及

var items = function () {
  return (
    <li>One</li>
    <li>Two</li>
    <li>Three</li>
  )
}
Run Code Online (Sandbox Code Playgroud)

并且在组件内部有一些可以检测差异的逻辑,如果是普通数组(不是节点数组),则能够映射项目.

Tho*_*ggi 59

React有一个函数来检查变量是否是一个元素,这里是文档.

React.isValidElement()
Run Code Online (Sandbox Code Playgroud)

  • 请注意,虽然“null”作为 React no-op 是有效的,但“isValidElement”返回“false”。因此,您需要单独检查。 (6认同)