javascript - 在 Javascript ES6 中导出多个包装函数

标签 javascript reactjs meteor ecmascript-6

我正在使用 react-komposer 来使用数据获取包装器来包装 React 组件。

这是非常基础的,我想在 Meteor 中包装多个组件。但是我不知道导出模式是什么?

这是我所拥有的(并给我一个“意外 token ”错误 - 如果您理解得很好,这可能很明显!):

// myContainer.jsx
import Component1 from './Component1.jsx';
import Component2 from './Component2.jsx';

function composer(props, onData) {
  if (Meteor.subscribe('SingleTodoLists').ready()) {
    const todoList = todoLists.find({}).fetch();
    onData(null, { todoList });
  }
}

export composeWithTracker(composer, Loading)(Component1);
export composeWithTracker(composer, Loading)(Component2);

我想像这样导入它们:

import { Component1, Component2 } from './myContainer.jsx';

这个包装语法对我来说不是很清楚,所以我不确定要尝试什么。到目前为止,使用导出默认值和其他变体没有产生任何结果。

最佳答案

如果你不使用默认导出,你需要命名你导出的东西:

export const TrackedComponent1 = composeWithTracker(composer, Loading)(Component1);
export const TrackedComponent2 = composeWithTracker(composer, Loading)(Component2);

如果您使用默认导出,您可以省略名称,例如

export default composeWithTracker(composer, Loading)(Component1);

但是你只能为每个模块定义一个默认导出

请参阅 ES6 导出语法的文档:https://developer.mozilla.org/en/docs/web/javascript/reference/statements/export

更新:

如果您想保留原始导出名称:

import _Component1 from './Component1.jsx';
import _Component2 from './Component2.jsx';

//... you code here

export composeWithTracker(composer, Loading)(_Component1);
export composeWithTracker(composer, Loading)(_Component2);

因为 Component1.jsx 使用默认导出,当您导入它时,您可以根据需要重命名它(例如 _Component1、UntrackedComponent1,...)。如果没有默认导出,您可以改用 import { Component1 } as _Component1

关于javascript - 在 Javascript ES6 中导出多个包装函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40377209/

相关文章:

javascript - 谷歌地球引擎: Region of Landsat Image

JavaScript - 如何访问对象数组中的特定值

javascript - ExtJS - 如何让一个面板显示在另一个面板中(当前显示空白屏幕)?

javascript - 错误: A valid React element (or null) must be returned (Checked Return() and Render())

javascript - 在 beforeEach 期间将 vuex 模块状态传递给 vue-router

javascript - Reactjs - 使用 xlsx.utils.json_to_sheet 导出到 Excel

javascript - 为什么 React 中的副作用不好

mongodb - 如何在 meteor 中使用聚合函数

javascript - 移动通信大会 : how to rerender on URL change

meteor - 如何防止导航到 meteor 铁路由器中的另一个页面