【发布时间】:2020-05-02 18:24:00
【问题描述】:
我想从react-icons 导入图标,该图标由与来自react-icons 的图标组件的命名导出相对应的字符串数组定义。
我涵盖了来自react-icons 的每个图标库的案例。这是 FontAwesome 的一个案例。
lazy(() => import('react-icons/fa').then(module => ({ default: module.Components[icon]})))
上面的代码 sn -p 被发现是here 作为动态导入命名导出的方法。
我希望这会返回一个与icon 指定的图标相对应的组件,例如let icon = 'FaPhp';
发生的事情是一个错误,它说:
TypeError: Cannot read property 'FaPhp' of undefined
【问题讨论】:
-
FWIW 您的错误意味着
module.Components未定义。我建议将console.log(JSON.stringify(Object.keys(module)))添加到您的thenlambda 以查看模块对象中的实际内容。 -
应该是
module.exports而不是module.Components -
@sjagr 我正在使用组件,否则我只有一个字符串,它是所需命名导出的名称。
-
@Brandon 谢谢你,我会试试的。我可能只需要从“react”导入组件。
-
module[icon]就是你想要的。
标签: reactjs lazy-loading dynamic-import react-icons