gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 15:43:59 25 4
gpt4 key购买 nike

我正在使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com