如何从命名空间导出,访问默认值? [复制]
Posted
技术标签:
【中文标题】如何从命名空间导出,访问默认值? [复制]【英文标题】:How do I export from a namespace, accessing the default? [duplicate] 【发布时间】:2021-07-26 10:53:48 【问题描述】:我有一个关于 ES6 导入模块的问题。
我尝试在我的 Three.js 代码中添加 OrbitControls。 由于 OrbitControls 是一个单独的模块,我需要在我的代码中单独导入它们,如下所示。它工作正常。
import OrbitControls from 'three-orbitcontrols'
但是,
我最初的预期是
import OrbitControls from 'three-orbitcontrols'
原因是, 据我了解,如果模块导出某些东西作为导出默认值, 我可以通过在我的“导入”代码中添加花括号来访问它们。 但是,它没有锻炼,所以我认为“三轨道控制”不会默认导出“轨道控制”。
然后我就这样尝试了
import * as Orbit from 'three-orbitcontrols'
new Orbit.OrbitControls(a,b)
然而,它也没有成功。
我误会了什么?
【问题讨论】:
【参考方案1】:导入时使用大括号从另一个文件导入 命名导出。比如下面的链接起来:
export const foo = 'something';
import foo from './somefile.js';
默认导出不使用大括号:
export default 'somethingelse';
import theSomethingElse from './someOtherFile.js';
听起来OrbitControls
使用默认导出,因此在导入时应避免使用大括号。
在做
import * as Orbit from 'three-orbitcontrols'
imports everything 模块作为命名空间导出,它本质上是一个对象。要从命名空间访问默认导出,请访问其上的 default
属性:
import * as Orbit from 'three-orbitcontrols'
new Orbit.default(a,b)
(或只使用您的原始版本:import OrbitControls from 'three-orbitcontrols'
)
【讨论】:
以上是关于如何从命名空间导出,访问默认值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章