首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CRA延迟加载SVG

使用CRA延迟加载SVG
EN

Stack Overflow用户
提问于 2021-11-09 18:17:38
回答 1查看 37关注 0票数 0

我想用CRA懒惰地加载SVG,但是我被卡住了,需要你的帮助。

我正在尝试这样做:

代码语言:javascript
复制
const LoadIcon = (name) => lazy(() => import(`../icons/${name}.svg`));

const SvgComponent = ({ icon }) => {
  const Icon = LoadIcon(icon);
  console.log("Icon ", Icon);
  return <Icon />;
};

值得一提的是,我确实尝试了官方CRA的建议(没有延迟加载):

代码语言:javascript
复制
import { ReactComponent as Icon } from "../icons/myCoolSvg.svg";

但是这种解构不适用于lazy。

请帮帮我!

EN

回答 1

Stack Overflow用户

发布于 2021-11-09 22:54:46

对于使用惰性的析构,您可以默认将其从单独的文件中导出,如下所示

代码语言:javascript
复制
// Middle Component
import { ReactComponent as Icon } from "./github.svg";

export default Icon;

然后在您的组件中延迟调用它

代码语言:javascript
复制
const MiddleComponent = lazy(() => import(`./MiddleComponent`));
const Svg = () => {
  return (
    <Suspense fallback={<div>Loading...</div>}>
      <MiddleComponent />
    </Suspense>
  );
};

点击此处查看演示- https://codesandbox.io/s/react-lazy-svg-loading-gi2ru

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69903143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档