民间,
我很好奇,为什么会这样:
export default translate(['header'], { wait: true })(Component)
或者这样做:
let NewComponent = translate(['header'], { wait: true })(Component)
export {NewComponent}
但这不是:
export translate(['header'], { wait: true })(Component)
这也不是:
export {translate(['header'], { wait: true })(Component)} /* ERRORS */
答案 0 :(得分:3)
有两种类型的导出:命名和默认。
在您的无效示例中,以下导出:
export translate(['header'], { wait: true })(Component)
...不起作用,因为表达式的结果无法识别为命名导出(您没有给它命名),并且它没有标记为{{1} }。如果您在将其与默认设置的第一个示例进行比较时,如果您对此有何不同感到好奇,请考虑如何在导入中引用它:
default
以下出口:
// Valid example
// exporting in exports.js
export default translate(['header'], { wait: true })(Component);
// importing it another file
import translateResult from './exports.js';
// Invalid example
// exporting in exports.js
export translate(['header'], { wait: true })(Component);
// importing in another file
// since it's not named, and there is no default, it has no reference.
import ?? from './exports.js';
import { ?? } from './exports.js';
...因为它在语法上不正确而无法正常工作。但是,如果你事先命名了这个表达式的结果,它就不会抛出错误(至少不是因为导出):
export {translate(['header'], { wait: true })(Component)} /* ERRORS */