es6导入的包装函数,不需要变量名(对于React高阶组件)

时间:2017-04-27 16:55:51

标签: javascript reactjs ecmascript-6

使用commonjs require,我可以这样做 -

let wrapper = require('./wrapper')
let Nephi = wrapper(require('./Nephi'))

使用es6导入语法,我似乎必须这样做 -

import wrapper from './wrapper'
import Nephi from './Nephi'
let Nephi2 = wrapper(Nephi)

我在下面尝试了这个:

import wrapper from './wrapper'
import Nephi from './Nephi'
Nephi = wrapper(Nephi)

但我得到一个只读的#39;错误。如果我使用' import'?

,我是否不得不使用其他变量名称

4 个答案:

答案 0 :(得分:3)

感谢@loganfsmyth -

  

导入的变量类似于const,您无法分配给它们。

答案 1 :(得分:0)

尝试使用

import { wrapper } from './wrapper'
import { Nephi } from './Nephi'
Nephi = wrapper(Nephi)

如果您不使用{},则表示您需要导出as default

答案 2 :(得分:0)

为什么不在Nephi中导入包装器,然后导出一个包装的Nephi对象?

export default wrapper(Nephi);

import Nephi as unwrappedNephi from './Nephi';

const Nephi = wrapper(unwrappedNephi);

答案 3 :(得分:-1)

如果你不想在你要导入的成员上包装花括号,在wrapper.js和Nephi.js上,你必须将它们作为默认值导出。 e.g。

inside wrapper.js

export default function wrapper(ob) { ... }

在Nephi.js中

export default Nephi = { ... };

导入它们:

import wrapper from './wrapper';
import Nephi from './Nephi';
var nephi2 = wrapper(Nephi);