Тип элемента недопустим при использовании хуков и функциональных компонентов - PullRequest
0 голосов
/ 25 октября 2019

У меня есть такой асинхронный компонент:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...