【问题标题】:React export declaration statement expected预期反应出口申报声明
【发布时间】:2017-09-15 02:56:26
【问题描述】:

当我尝试导出我的组件时,我的编辑器显示错误export declaration statement expected

这是我的代码:

export Header from './Header/Header';

但如果我这样做:

export {default as Header} from './Header/Header';

它没有显示任何错误。

我的 Header.js

export default class Header extends React.Component {
  //code
}

我正在关注这个例子https://github.com/erikras/react-redux-universal-hot-example/blob/master/src/components/index.js

我的组件文件夹结构和导出方法和那些链接一样。

有什么办法吗?

【问题讨论】:

  • export {default as Header} from './Header/Header'; 在我看来是正确的。这有什么问题?
  • @Felix Kling 没问题。我很好奇为什么在我发布的链接中没有问题

标签: javascript reactjs


【解决方案1】:

有什么办法吗?

export Header from './Header/Header'; 不是有效的语法,但是有一个 proposal 来支持它。

您链接到 configured babel 的存储库以使用 stage-0 预设支持此提议的功能:

{
  "presets": ["react", "es2015", "stage-0"],
  ...
}

stage-0 包括 stage-1,其中包含实现此功能的 transform-export-extensions plugin


但需要明确的是,您没有必须使用此实验性功能。

export {default as Header} from './Header/Header';

效果一样,是标准的ES6。

【讨论】:

  • 嗨,很好!我正在使用 vscode 并将 .babelrc 设置为使用 stage-0 为什么它仍然显示错误(包已安装)?
  • 我不知道vscode是如何工作的,它可能不知道babel。我不希望 IDE 支持所有实验性功能。
【解决方案2】:

试试 export default from './Header/Header';

【讨论】:

  • 我不能这样做。我需要全局调用这个文件。
  • 官方不支持此表单,仅以proposal存在。如果您建议使用实验性功能,请同时说明如何使用它们。
  • 我明白了。我不确定您使用的是什么编辑器,但您的 export Header from './Header/Header'; 对我有用。我使用 WebStorm。
猜你喜欢
  • 2023-02-02
  • 2015-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-14
  • 2021-02-09
  • 2018-06-12
  • 1970-01-01
相关资源
最近更新 更多