相关疑难解决方法(0)

ES6从对象导出所有值

假设我有一个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)

哪个不是动态的.

是否可以从对象中导出所有值?

module export ecmascript-6

94
推荐指数
7
解决办法
8万
查看次数

Module.exports和es6导入

与巴贝尔发生反应.我对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作为模块捆绑器.

babeljs es6-module-loader

25
推荐指数
3
解决办法
2万
查看次数

全局导入的变量未定义

我的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 的 # 属性 …

javascript reactjs

3
推荐指数
1
解决办法
2884
查看次数