流-道具传递的渲染组件

时间:2018-10-30 20:09:25

标签: javascript reactjs flowtype

我正在尝试在Button React组件中使用流。

// @flow

import * as React from 'react'

type Props = {
  color: string,
  block: boolean,
  component: React.Component<*> | string,
  className: string,
  domProps: Object
}

const Button = ({
  color,
  block,
  component,
  className,
  ...domProps
}: Props) => {
  const Component = component

  return (
    <Component
      {...domProps}
      className={`
        ${className}
        btn
        btn--${color}
        ${block ? 'btn--block' : ''}
      `}
    />
  )
}

Button.defaultProps = {
  component: 'button',
  block: false
}

export default Button

但是当我尝试渲染自定义组件流时,会显示此错误:

  

[流程]无法创建Component元素,因为React.Component [1]   不是React组件。 (参考:[1])

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您不能在Flow中使用#Requires -Version 3.0 (Get-ChildItem ".\*XYZ*" -File -Recurse) | ForEach-Object { $Swap = $_.Replace("XYZ","ABC") If (Test-Path $Swap){ Rename-Item $Swap -NewName "$Swap.bak" $_ | Rename-Item -NewName $Swap Rename-Item "$Swap.bak" -NewName $_.FullName } else { $_ | Rename-Item -NewName $Swap } } 作为类型定义。 Flow for React中有内置的类型定义。这就是您要寻找的东西:

React.Component

用法示例:

React.ComponentType

在此处阅读有关其他React类型定义的所有信息:https://flow.org/en/docs/react/types/