【问题标题】:Why default import of module is include the default export again in importing为什么模块的默认导入是在导入时再次包含默认导出
【发布时间】:2023-01-25 21:43:16
【问题描述】:

我正在尝试导入 react-ga4 npm package.

import ReactGA from 'react-ga4'

当我控制台日志记录时,包默认导入如下

我在这里很困惑,因为它是导入为的行为

import * as ReactGA from 'react-ga4'

Mozilla Reference中声明

即使在react-ga4 npm package的使用指南中,初始化方法也是直接访问为

import ReactGA from "react-ga4";
ReactGA.initialize("your GA measurement id");

不像ReactGA.default.initialize("")。所以我在这里遗漏或误解了什么。

它在 codesandbox 中不可重现:link
但错误仍然存​​在于新的 npm 包中

【问题讨论】:

    标签: javascript node-modules javascript-import


    【解决方案1】:

    当你像这样导入没有大括号的模块时`

    import ReactGA from 'react-ga4'
    

    包名称,无论它是什么(ReactGA 或其他名称),它都会自动引用默认导出值。所以这里你的“ReactGA”是相同的默认导出对象。 当您使用星号导入时

    import * as ReactGA from 'react-ga4'
    

    您的“ReactGA”包含所有导出值

    您可以在一行中导入默认导出值和命名导出值

    import ReactGA, { ReactGAImplementation } from 'react-ga4'
    

    这里你的 ReactGA 是默认的。

    有关更多信息,您可以阅读这篇文章`https://betterprogramming.pub/built-in-module-imports-and-exports-javascript-es6-feature-series-part-7-5f0864049e1f

    【讨论】:

      猜你喜欢
      • 2022-07-10
      • 1970-01-01
      • 2018-08-26
      • 2022-06-25
      • 2021-06-19
      • 2022-11-02
      • 2017-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多