TypeError: Super expression must either be null or a function, not undefined when imported from parent folder
当我尝试从父文件夹导入一个类(该类在索引文件中导出)时,出现此错误:
TypeError:超级表达式必须为null或函数,且未定义
当我在其他地方导入它时,没有问题。
导入:
父文件夹中的索引文件:
1 2 3 4 5 | import BaseComponent from './BaseComponent'; import Header from './Header'; import NavigationBar from './NavigationBar'; export { BaseComponent, Header, NavigationBar }; |
导入其他文件:
为什么在子文件夹中导入时不起作用?
更新
文件结构:
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
此导入确实有效,但是我试图使用索引文件来组合这些类:
更新3
@奥利维尔
您正在混合使用默认的导出语法和命名的导出语法。
您需要匹配导入和导出语法,因此:
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'; |