【问题标题】:react components as destructed export将组件反应为破坏的导出
【发布时间】:2020-04-04 11:15:15
【问题描述】:

我正在使用 create-react-app 构建我的应用程序。我有像 src/images/icons 这样的文件夹结构,在图标文件夹中我有 index.js:

import Logo from "./my-logo.svg";

export {
  Logo
}

我这样做是因为我可以在任何地方使用任何图标

import { Logo } from '../images/icon'

否则我必须这样做

import Logo from '../images/icons/my-logo.sv'

通常一个页面不会有 1 或 2 个图标,它可以更多,我不想有超长的导入。但这并不能真正解决问题。

问题是 src/images/icon 中的 index.js 仍在增长。每次我在我的图标文件夹中添加一个新图标时,我都必须更改 index.js。有没有更好的解决方案?

【问题讨论】:

    标签: javascript reactjs create-react-app


    【解决方案1】:

    您可以使用命名导出格式直接重新导出默认导出,因为默认导出的名称实际上是default

    export {default as Logo} from "./my-logo.svg";
    

    这替换了您当前在 index.js 中的四行(忽略空白行),并且避免了两次列出 Logo(这是维护风险)。


    注意:这适用于真正的 JavaScript 模块,所以我希望它甚至可以与 Webpack 或 Rollup 之类的打包程序一起使用(我猜你正在使用它,因为你重新导入 SVG,这不是 JavaScript 功能,而是打包程序经常添加的那种东西)。

    【讨论】:

    • 看不懂,我的src/image/icons中没有index.js,你要怎么导入图标?
    • @user3106579 - 我可能误解了这个问题。上面的行将在index.js 中。它所做的是将您当前拥有的每个图标的四行替换为每个图标一行。如果您的目标是完全消除index.js,我不确定您将如何做到这一点,而不必直接从任何使用它们的图标中引用它们,这是我认为您想要避免的。我在解决错误的问题吗? :-)
    • 我明白了,你的一行代码可能会改善这种情况,我希望有一个工具能够分析文件夹中的文件并自动更新 index.js :) 我找到了这个@987654321 @
    • @user3106579 - 啊,我明白了。如果这个答案没有用,请告诉我,我会删除它。如果您正在寻找一种自动创建文件的方法,我会更新问题以明确说明,并列出有关您的构建环境的更多信息——例如,您是否使用 Webpack、Rollup、Gulp、Grunt 等。
    猜你喜欢
    • 1970-01-01
    • 2021-12-09
    • 2020-11-15
    • 2019-10-07
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    相关资源
    最近更新 更多