2017-08-03 46 views
0

抱怨我相信以下由流量被捕獲:流沒有不兼容的ReactClass使用和JSX

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 

回答

2

this評論,ReactClass是越野車最好,不應該被使用。您可以改用以下內容:

type MyProps = { 
    foo: boolean, 
}; 
const makeComponent = (C: Class<React.Component<void, MyProps, void>>) => <C />; 

注意,對於React.Component參數是defaultPropsPropsState。在上面的例子中,假設組件沒有定義defaultPropsState,因此void值。