无法读取未定义的 属性 'then' |当我尝试使用 babel-dynamic-import 导入组件时

Cannot read property 'then' of undefined | When i try to import a component with babel-dynamic-import

我正在尝试使用 @babel/plugin-syntax-dynamic-import 导入 React 组件,但我无法使其工作。

这是我的主要组件中的代码:

import React from 'react';
import Loadable from 'react-loadable';

const Test = Loadable({
  loader: () => import('./Space').default,
  loading: <div>loading</div>
});

const App = () => <Test />;
export default App;

我的 Space 组件中的代码:

import React from 'react';

const Space = () => <h1>hello from space</h1>;

export default Space;

使用这段代码我得到了这个错误:Uncaught TypeError: Cannot read property 'then' of undefined

我把这个放在这里,不知道是否有帮助:The above error occurred in the <LoadableComponent> component: react-dom.development.js:17117

是的,我安装了 @babel/plugin-syntax-dynamic-import 并添加到我的 babel 配置文件中。

好的,我使用 React.lazy 解决了它(请参阅@Mario Subotic 评论)。

这是我的最终代码:

import React, { lazy, Suspense } from 'react';
import Loadable from 'react-loadable';

const Test = lazy(() => import('./Space'));

const App = () => (
  <Suspense fallback={<div>Loading...</div>}>
    <Test />
  </Suspense>
);
export default App;

Note: apprently have to use Suspense around the component you're lazy loading.

Source: https://github.com/reactjs/reactjs.org/issues/1810