使用挂钩和功能组件时元素类型无效

时间:2019-10-25 01:42:00

标签: javascript reactjs typescript react-hooks

我有一个像这样的asynccomponent:

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>;
  };
}

它抛出错误

元素类型无效:应使用字符串(对于内置组件)或类/函数(对于复合组件),但得到:对象。

0 个答案:

没有答案
相关问题