reactjs react export意外标记

rjee0c15  于 2023-01-02  发布在  React
关注(0)|答案(3)|浏览(261)

所以我有这些文件和文件夹。

App.js
modules/
  user/
    index.js
    list.js

在list.js中,我有export default (props) => (...)
在index.js中,我有export UserList from './list';
在App.js中,我有import { UserList } from './modules/user';
有什么问题吗?因为我

./src/modules/user/index.js
Syntax error: Unexpected token, expected { (1:7)
> 1 | export UserList from './list';

但我看不出有什么问题救命!
编辑:下面是我的list.js文件的更多细节,但我认为这不会有什么不同,因为错误在index.js中

import React from 'react';
// more import
export default (props) => (
  <List {...props}>
    ...
  </List>
);
vngu2lb8

vngu2lb81#

我看到您正在直接导出属于另一个文件的零部件,而没有导入它。
您的操作方式是ES8 Proposal
在ES6中,可以将组件导出为

export {default as UserList} from './list'

然后导入为

import { UserList } from './modules/user';
a11xaf1n

a11xaf1n2#

适用于巴别塔6用户

添加babel-plugin-transform-export-extensions插件到你的**.babelrc**,如下所示:

"plugins": [
    "babel-plugin-transform-export-extensions",
    "transform-es2015-modules-commonjs"
  ]

然后运行到下面安装插件

npm install --save-dev babel-plugin-transform-export-extensions
npm install --save-dev babel-plugin-transform-es2015-modules-commonjs

在此之后,从index.js导出模块的工作方式如下:

export simpleRestClient from './simple';
export jsonServerRestClient from './jsonServer';
export * from './types';

对于那些使用早期babel版本的用户,只需使用commonjs模块即可。

v440hwme

v440hwme3#

我在public/index.htmlbody部分中添加了<script type="module" src="/Aapp.js"></script>。它对我有效。请参考此blog
我使用了节点版本18.12.1和React版本17.0.2

<!DOCTYPE html>  
<html lang="en">  
  <head>
    <meta charset="UTF-8" />
  </head>
  <body>

    <!-- ✅ set this script’s type to `module` -->
    <script type="module" src="/Aapp.js"></script>
  </body>
</html>

相关问题