关于node.js:TypeError:超级表达式必须为null或函数,从父文件夹导入时未定义

TypeError: Super expression must either be null or a function, not undefined when imported from parent folder

当我尝试从父文件夹导入一个类(该类在索引文件中导出)时,出现此错误:

TypeError:超级表达式必须为null或函数,且未定义

当我在其他地方导入它时,没有问题。

导入:import { BaseComponent } from '../';

父文件夹中的索引文件:

1
2
3
4
5
import BaseComponent from './BaseComponent';
import Header from './Header';
import NavigationBar from './NavigationBar';

export { BaseComponent, Header, NavigationBar };

导入其他文件:import { BaseComponent, NavigationBar, Header } from './common';

为什么在子文件夹中导入时不起作用?

更新

文件结构:

1
2
3
4
5
6
7
8
9
common/
    BaseComponent/
        index.js
    Header/
        index.js
    NavigationBar/
        index.js (import not working for BaseComponent)
    index.js (export file)
App.js (correct import)

更新2

此导入确实有效,但是我试图使用索引文件来组合这些类:import BaseComponent from"../BaseComponent";

更新3

Screenshot


@奥利维尔

您正在混合使用默认的导出语法和命名的导出语法。

您需要匹配导入和导出语法,因此:

1
2
3
4
5
6
7
export default BaseComponent { ...
       ^^^^^^^ => export default...

matches

import BaseComponent from '../BaseComponent'
       ^^^^^^^^^^^^^  ==> import witout {}

1
2
3
4
5
6
export BaseComponent { ...
       ^^^^^^^^^^^^^  => named export
matches

import { BaseComponent } from '../BaseComponent'
      ^^              ^^ ==> use {} to named imports!


回答以供将来参考

我通过更直接地导出索引文件中的类解决了此问题。我不知道最初的想法为什么行不通,但是这个解决方案可以解决问题:

1
2
3
export {default as BaseComponent} from './BaseComponent';
export {default as Header} from './Header';
export {default as NavigationBar} from './NavigationBar';