如何将另一个组件附加到ComponentType?

时间:2017-12-13 16:38:41

标签: reactjs flowtype

有没有办法将另一个组件附加到已经作为ComponentType输入的组件?

E.g:

type Props = {
  name: string,
}

const Header: ComponentType<Props> = ({ props }) => (<h1>{name}</h1>)
const SubHeader: ComponentType<Props> = ({ props }) => (<h2>{name}</h2>)

Header.SubHeader = SubHeader // this is causes a flow error due to ComponentType

示例有点人为,但在使用HOC或ComponentType时,有时需要强制使用styled-components的手动。

1 个答案:

答案 0 :(得分:0)

交叉路口将完成工作:const Header: ComponentType<Props> & { SubHeader: ComponentType<Props> }

请注意,SubHeader不能是Maybe或可选类型,因为如果您尝试将Maybe或可选类型作为组件呈现,Flow会抱怨。