使用module.exports和ES6导出导入

Exporting imports using module.exports and ES6

本文关键字:导入 ES6 module exports 使用      更新时间:2024-02-25

我正试图将一个函数导入到一个文件中,然后从该文件中导出。这应该很简单,但由于某种原因,我无法让它发挥作用。

search_action.js

function search_actions() {
    this.receive_results = function() {
        return {
            type: 'RECEIVE_RESULTS',
            results: results
            }
        }
}
module.exports = search_actions

index.js

require('es6-promise').polyfill();
var SearchActions = require('./search_actions.js') 
var search_actions = new SearchActions()
//console.log(search_actions.receive_results)
export search_actions.receive_results

尽管console.log(search_actions.receive_results)打印了函数,但index.js底部的导出失败,并带有意外的标记。那么,正确的方法是什么呢?

重新导出的最后一行无效:

export search_actions.receive_results

不能在右侧使用foo.bar引用,因为导出需要一个非限定名称。您可以引用对象声明中的字段并导出:

export default {
  search_actions: search_actions.receive_results
}

有关导出语法,请参见规范的15.2.3节。您遇到的问题是导出的x.y部分,对象或局部变量将解决该部分。

如果你也在使用ES6 import,你也可以做:

import {receive_results} from 'search_actions';
export default receive_results;