【问题标题】:next.js dynamic import component from objectnext.js 从对象动态导入组件
【发布时间】:2021-09-01 03:10:21
【问题描述】:

我有一个组件对象,我希望使用 next/dynmaic 动态导入它

我只是想知道这是否可能。

这是有问题的对象

// IconComponents.tsx

import {
    Tick,
    Star
} from 'components/Icons';

export interface Map {
  [name: string]: JSX.Element;
}

const IconObject: Map = {
  tick: <Tick />,
  star: <Star />,
};

export default IconObject;

如果我将它导入到不同的文件中

import dynamic from 'next/dynamic';

const DynamicComponent = dynamic(() => import('./Icons/IconComponents'));

我收到以下错误

'() => Promise' 类型的参数不可分配给 'DynamicOptions 类型的参数 |加载器'。

类型 '() => Promise' 不可分配给类型 '() => LoaderComponent'。

我做错了什么,我需要对象中的所有组件,所以我应该循环遍历它吗?有什么想法吗?

【问题讨论】:

    标签: javascript reactjs typescript next.js


    【解决方案1】:
    dynamic(callback)
    

    看起来dynamic 中提供的callback 应该返回反应组件

    试试

    const DynamicComponent = dynamic(() => import('./Icons/IconComponents').tick);
    

    【讨论】:

    • 或类似的东西 const DynamicComponent = dynamic(async () => ({ default: (await import('./Icons/IconComponents')).tick, })); ```
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    • 2020-03-07
    • 2023-01-10
    • 2020-09-26
    • 2019-09-15
    • 1970-01-01
    • 2019-10-10
    相关资源
    最近更新 更多