【问题标题】:Only one default export allowed per module每个模块只允许一个默认导出
【发布时间】:2017-05-11 09:28:24
【问题描述】:

错误阻止启动:

在为 web.browser 构建时: imports/ui/App.jsx:62:每个模块只允许一个默认导出。 (62:0)

您的应用程序有错误。等待文件更改。

import React, { Component, PropTypes } from 'react';
import { createContainer } from 'meteor/react-meteor-data';

export default class App extends Component {
  constructor(props) {
    super(props);

    // setting up the state
    this.state = { players: [] };
}

App.propTypes = {
  players: PropTypes.array.isRequired,
};

export default createContainer(() => {
  Meteor.subscribe('players');

  return {
    players: Players.find({}, {sort: { name: 1}}).fetch(),
  };
}, App);

【问题讨论】:

  • 非常自我解释?你有两次export default。你有什么问题?
  • 是的,你到底想做什么?您想在一个文件中进行多个导出吗?如果是这样,请不要使用默认关键字并使用 {} 导入

标签: reactjs


【解决方案1】:

您的文件只能有one default exportzero or more named export。在您的情况下,您有两个导致错误的默认导出。

您可以将其中一个更改为命名导出

喜欢

export class App extends Component {
  constructor(props) {
    super(props);

    // setting up the state
    this.state = { players: [] };
}

App.propTypes = {
  players: PropTypes.array.isRequired,
};

export default createContainer(() => {
  Meteor.subscribe('players');

  return {
    players: Players.find({}, {sort: { name: 1}}).fetch(),
  };
}, App);

以后如果你想import App你可以这样做

import {App} from './path/to/App';

【讨论】:

  • 谢谢!在文件中只保留一个默认导出语句,解决了我的问题。
猜你喜欢
  • 1970-01-01
  • 2017-01-14
  • 2017-01-02
  • 2021-04-24
  • 1970-01-01
  • 2019-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多