当前位置: 首页 > 知识库问答 >
问题:

如何从名称空间导出,访问默认名称空间?[副本]

聂宜
2023-03-14

我有一个关于ES6导入模块的问题。

我试图在我的Three.js代码中添加OrbitControl。由于OrbitControls是一个单独的模块,我需要在我的代码中分别导入它们,如下所示。它工作得很好。

import OrbitControls from 'three-orbitcontrols'

然而

我首先想到的是

import {OrbitControls} from 'three-orbitcontrols'

原因是,
据我所知,如果模块将某些内容导出为导出默认值,
我可以通过在“导入”代码中添加花括号来访问它们。
但是,它没有起作用,因此我假设“三个orbitcontrols”不会将“orbitcontrols”导出为默认值

然后我试着这样做

import * as Orbit from 'three-orbitcontrols'

new Orbit.OrbitControls(a,b)

然而,这也没有成功。

我误解了什么?

共有1个答案

融宏伟
2023-03-14

从另一个文件导入命名导出时,将使用花括号。例如,以下链接:

export const foo = 'something';
import { foo } from './somefile.js';

默认导出不使用花括号:

export default 'somethingelse';
import theSomethingElse from './someOtherFile.js';

这听起来像是OrbitControls使用默认导出,所以在导入时应该避免使用花括号。

import * as Orbit from 'three-orbitcontrols'

导入模块作为命名空间导出的所有内容,命名空间本质上是一个对象。要从命名空间访问默认导出,请访问其中的默认属性:

import * as Orbit from 'three-orbitcontrols'

new Orbit.default(a,b)

(或者只使用原始版本:从“三个OrbitControls”导入OrbitControls

 类似资料:
  • 问题内容: 有没有一种方法可以在python ElementTree中定义默认/无前缀的命名空间?这似乎不起作用… 这也不是: 可以,但是我必须在每个元素前加上前缀: 在OSX上使用Python 3.5。 编辑:如果答案为“否”,您仍然可以获得赏金:-)。我只是想要一个花了很多时间使用它的人的明确“否”。 问题答案: 没有简单的方法可以透明地处理默认名称空间。正如您已经提到的,为空名称空间分配非空

  • 在OpenFOAM中,存在一个函数,其名称为exp,表示数学中的幂操作。同时,C++本身也可以进行这个计算,并且函数名称也为exp。这会导致调用的时候,编译器并不知道应该调用OpenFOAM的exp还是C++本身的exp。一种方法是将其中一个exp函数进行改名,比如将OpenFOAM中的exp改成expFoam。但还有更简单的方式。 名称空间专门用于解决上面的问题,它可作为附加信息来区分不同库中相

  • 我的数据有一个ATOM-XML表示,通过Spring MVC web服务返回。我使用JAXB进行序列化,我有许多名称空间,但我希望默认名称空间设置为Atom,不带前缀。下面是我到目前为止在中的内容,但是atom前缀被设置为NS3。 另外,我注意到chrome中显示的名称空间,而Firefox中没有。

  • 目前,我们有一个使用代码欺骗2.0.16构建的大型接受套件。我们想升级到代码欺骗2.2.5。然而,在安装了Codec0019 2.2.5(via phar)之后,我们根本无法运行我们的测试套件。 我们收到的错误是(底部的其他详细信息): 无法找到并加载[Codeception\Exception\ConfigurationException]模块WebHelper 显然,新版本的加载更改会影响我们

  • 问题内容: 我想使用JDOM读取XML文件,然后使用XPath从JDOM Document中提取数据。它可以很好地创建Document对象,但是当我使用XPath在Document中查询元素列表时,我什么也没得到。 我的XML文档在根元素中定义了一个默认名称空间。有趣的是,当我删除默认名称空间时,它成功运行了XPath查询并返回了我想要的元素。要使XPath查询返回结果,我还必须做什么? XML: