如何判断变量是reactNode

时间:2019-07-14 09:57:42

标签: javascript reactjs typescript

我有一个道具页脚,它是ReactNode的一种或我的自定义类型

我写了一个函数来获取它是否是一个ReactNode

const isReactNode = (value: any): value is React.ReactNode => {
  return (
    React.isValidElement(value) ||
    typeof value === 'string' ||
    typeof value === 'number' ||
    typeof value === 'boolean' ||
    JSON.stringify(value) === '{}' ||
    value === undefined ||
    value === null
  )
}
interface CadrFooterProps {
  key1?: string
}

const CardFooter = (pros: { footer: CadrFooterProps }) => {
  return xxxx
}

function Card(props:{footer: CadrFooterProps | React.ReactNode}) {
  const { footer } = props
  const footerDom = isReactNode(footer) ? footer:<CardFooter footer={footer}/>
  return (
    <div>
      ...
      {footerDom}
    </div>
  )
}

我不知道这是否是最佳做法,请帮我复习

0 个答案:

没有答案