我相信以下内容应该被流程抓住:
type MyProps = {
foo: boolean,
};
const makeComponent = (C: ReactClass<MyProps>) => <C />;
从阅读the source开始,我相信我正确理解ReactClass
。
是什么给出的?这似乎也适用于React.createElement(C, {})
另一方面,以下休息:
import MyComponent from '...'; // this component has props MyProps
const makeComponent = () => <MyComponent />;
// and likewise with React.createElement
答案 0 :(得分:2)
根据this评论,ReactClass
充其量只是错误,不应该使用。您可以改用以下内容:
type MyProps = {
foo: boolean,
};
const makeComponent = (C: Class<React.Component<void, MyProps, void>>) => <C />;
请注意React.Component
的参数为defaultProps
,Props
和State
。在上面的示例中,假设组件未定义defaultProps
或State
,因此void
值。