假设我有一个module(./my-module.js),它有一个应该是其返回值的对象:
let values = { a: 1, b: 2, c: 3 }
// "export values" results in SyntaxError: Unexpected token
Run Code Online (Sandbox Code Playgroud)
所以我可以导入它们:
import {a} from './my-module' // a === 1
import * as myModule from './my-module' // myModule.a === 1
Run Code Online (Sandbox Code Playgroud)
我发现的唯一方法是硬编码出口:
export let a = values.a
export let b = values.b
export let c = values.c
// or:
export let {a, b, c} = values
Run Code Online (Sandbox Code Playgroud)
哪个不是动态的.
是否可以从对象中导出所有值?
与巴贝尔发生反应.我对import和module.exports感到困惑.在将ES6代码转换为ES5时,我假设babel将导入和导出分别转换为require和module.exports.
如果我从一个模块导出一个函数并在另一个模块中导入该函数,代码执行正常.但是如果我使用module.exports导出函数并使用"import"导入,则会在运行时抛出错误,表示它不是函数.
我做了一个例子.
// Tiger.js
function Tiger() {
function roar(terrian){
console.log('Hey i am in ' + terrian + ' and i am roaing');
};
return roar;
}
module.exports = Tiger;
// animal.js
import { Tiger } from './animals';
var animal = Tiger();
animal("jungle");
Run Code Online (Sandbox Code Playgroud)
我使用预设es2015的babel进行反编译.这给了我以下错误
未捕获的TypeError:(0,_ animals.Tiger)不是函数
但是如果我删除它module.exports = Tiger;并用它替换export { Tiger };它工作正常.
我在这里失踪了什么?
编辑: 我使用browserify作为模块捆绑器.
我的FinalVariables.js中有三个变量,如下所示:
var finalTaskName = 'abc'
var finalQuantityTaskExecuted = 0
var finalQuantityTaskCompletion = 100
export {finalTaskName, finalQuantityTaskExecuted, finalQuantityTaskCompletion}
Run Code Online (Sandbox Code Playgroud)
在另一个文件中,我使用以下行导入它们:
import {finalTaskName,finalQuantityTaskExecuted,finalQuantityTaskCompletion} from './FinalVariables'
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在其他文件中使用上述三个变量中的任何一个时,它们始终是undefined. 是否有一个原因?
我是 Javascript 和 React 的新手,任何帮助将不胜感激!谢谢你!
-------------------------------------------------- - - - - - - - - - - - - - - - - - - - - -更新 - - - - -------------------------------------------------- ---
我按如下方式导入变量:
import * as finalVariables from './FinalVariables'
Run Code Online (Sandbox Code Playgroud)
当我做一个
console.log(finalVariables.finalTaskName)
我能够打印正确的值,但是当我尝试为其分配值时:
finalVariables.finalTaskName = this.props.item[0].particulars
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
无法设置只有 getter 的 # 属性 …