我有一个接受一些参数并呈现 SVG 的函数。我想根据传递给函数的名称动态导入该 svg。它看起来像这样:
import React from 'react';
export default async ({name, size = 16, color = '#000'}) => {
const Icon = await import(/* webpackMode: "eager" */ `./icons/${name}.svg`);
return <Icon width={size} height={size} fill={color} />;
};
根据动态导入的 webpack 文档和神奇的评论“eager”:
“不生成额外的块。所有模块都包含在当前块中,并且不会发出额外的网络请求。仍然返回 Promise 但已经解析。与静态导入相比,模块在调用导入之前不会执行() 已制成。”
这就是我的图标解决的问题:
> Module
default: "static/media/antenna.11b95602.svg"
__esModule: true
Symbol(Symbol.toStringTag): "Module"
试图以我的函数试图给我这个错误的方式呈现它:
Objects are not valid as a React child (found: [object Promise]). If you meant to render a collection of children, use an array instead.
我不明白如何使用这个导入的模块将其渲染为组件,或者甚至可以这样吗?
慕慕森
桃花长相依
红颜莎娜
LEATH
相关分类