У меня есть такой асинхронный компонент:
export default (getter: Function) => {
return class extends Component<any, {
component: null | typeof React.Component
}> {
constructor(props: any) {
super(props);
this.state = {
component: null
};
}
componentDidMount() {
getter().then((res: AsyncComponentModuleType) => {
this.setState({
component: res.default
});
});
}
render() {
const C = this.state.component;
return C ? <C {...this.props} /> : null;
}
};
};
, но когда я использую хуки + компонент функции
export default (getter: Function) => {
return (props: any) => {
const [Comp, setComponent] = useState(null as null | typeof React.Component);
useEffect(() => {
getter().then((res: AsyncComponentModuleType) => {
setComponent(res.default);
})
}, []);
return Comp ? <Comp {...props} /> : <p></p>;
};
}
, он выдает ошибку
Тип элемента недопустим: ожидал строку (для встроенных компонентов) или класс / функцию (для составных компонентов), но получил: object.