我正在爲next.js頁面編寫HOC組件,並且此HOC需要接受具有特定getInitialProps
靜態函數的組件。如何使用靜態屬性鍵入React.ComponentType?
我不能找出正確的打字本帶流量:
const wrapComponent = (Component: React.ComponentType<*>) => {
const original: Function = Component.getInitialProps;
return class extends React.Component<*> {
static async getInitialProps(ctx) {
const props = await original(ctx);
return {
...props,
custom: 'a',
};
}
render() {
return <Component {...this.props} />;
}
}
}
我得到這個錯誤:
5: const original: Function = Component.getInitialProps;
^property `getInitialProps`. Property not found in
5: const original: Function = Component.getInitialProps;
^statics of React$Component
反應的組分從未有過的'getInitialProps'方法。如果這些是特定的組件,那麼你必須鍵入'Component',而不是'React.Component'。 –
@FelixKling你的意思是創建一個類接口? –
我想這會工作。 –