【发布时间】:2020-10-18 23:49:29
【问题描述】:
我的项目文件夹中有以下结构:
src
|
-> assets
|
-> general-icons
|
pointer-arrow.svg
|
-> components
|
-> lazy-loader
|
LazyLoader.tsx
LazyLoader 是一个功能性的反应组件,我在其中动态导入一个组件,在本例中是一个 svg 文件
import React from 'react';
export default function LazyLoader(path: string) {
return React.lazy(() => import(path));
}
“路径”属性是一个字符串,其中包含 svg 文件的相对路径:
src/assets/general-icons/pointer-arrow.svg
而pointer.svg是一个普通的svg:
<svg version="1.1" width="24" height="24" viewBox="0 0 24 24">
<path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z" />
</svg>
当我调用 LazyLoader 组件传递路径作为参数时,它会给出一个错误,因为它找不到 svg 模块:
Error: Cannot find module 'src/assets/general-icons/pointer-arrow.svg'
有人有什么想法吗?
【问题讨论】:
-
相对路径不是
../../../assets/general-icons/pointer-arrow.svg吗? -
你如何使用这个 LazyLoader 功能?
标签: javascript reactjs typescript svg