导入components/Header时报"Header未从该模块导出"错误排查
报错根源
整套导入链路的导出/导入规则完全不匹配,三个衔接断点依次为:
Header.js仅以默认导出形式暴露组件,未设置任何命名导出Components/Header/index.js中使用的export * from "./Header"仅会透传目标模块的所有命名导出,完全不会传递默认导出的内容。经过这层转引后,该目录入口对外不存在名为Header的命名导出App.js使用花括号语法执行命名导入,自然无法匹配到对应导出,直接触发报错。
可选择的修复方案
根据现有代码风格选任意一种对齐即可:
- 保留App.js的命名导入写法,修改
Components/Header/index.js的转引逻辑为export { default } from "./Header";,这行代码会把Header.js的默认导出转换为对外的命名导出,匹配现有导入规则 - 保留index.js的
export *转引逻辑,修改Header.js的导出方式,把原有export default Header调整为命名导出export const Header = () => {...},转引逻辑就能正确透传Header组件 - 降低转引兼容成本,直接修改App.js的导入语法为默认导入
import Header from "components/Header",去掉花括号即可匹配Header.js的默认导出
内容的提问来源于stack exchange,提问作者Galanthus
相关产品推荐
相关产品推荐

