1

我尝试使用React.lazy()Suspense组件在我的仪表板中动态加载。它适用于硬编码值,但不适用于变量。我现在有点无语了。可能是一个愚蠢的错误!

作品:

const WidgetComponent = React.lazy(() => import('../../../widgets/dummy/Dummy'));

不工作:

// widget.path === '../../../widgets/dummy/Dummy'
const WidgetComponent = React.lazy(() => import(widget.path));

也不起作用:

const WidgetComponent = React.lazy(() => import(`${widget.path}`));

我可以添加的一件事是小部件道具是从公用文件夹中的 json 文件填充的。

4

1 回答 1

1

好的,在@Ajeet Shah 的帮助下,我解决了我的问题。

我用组件名称创建了一个新属性,然后我这样做了:

const WidgetComponent = React.lazy(() => import(`../../../widgets/${widget.component}`));

不是最优雅的解决方案,但它有效。

于 2020-12-24T16:41:35.020 回答