如果要在导出的组件内使用组件,Flow需要我对组件进行批注,但这仅在未注释的组件作为导出组件的根呈现时才会发生。
// @flow
import React from 'react';
const ContainerA = props => <div {...props} />;
// This one throws "Missing type annotation for `props`."
const ContainerB = props => <div {...props} />;
type Props = { children: React$Node };
// No type error
export const Ok = (props: Props) => <><ContainerA>{props.children}</ContainerA></>;
// Type error (see ContainerB comment)
export const Ko = (props: Props) => <ContainerB>{props.children}</ContainerB>;
如果我用其他内容(片段,div等)包装未注释的组件,那么Flow不需要我对其进行注释。
我知道Flow希望我们对导出的函数,组件等进行批注...但是我没有导出该组件,而是在要导出的组件中使用它。
为什么会这样?