You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中如何从index文件导出多组件?导入报错求助

问题描述

我在React项目中尝试通过components/index.jsx统一导出组件,再在App.jsx中导入时遇到了语法错误。

index.jsx代码:

import Navbar from './Navbar/Navbar';
import Greeting from './Greeting/Greeting'
import Project from './Project/Project';
import About from './About/About';
import Contact from './Contact/Contact';
import Footer from './Footer/Footer';

export default {
  Navbar,
  Greeting,
  Project,
  About,
  Contact,
  Footer,
};

App.jsx代码:

import React from 'react';
import {Navbar} from './components';

// import Navbar from './components/Navbar/Navbar';

const App = () => {
  return (
    <div>
      <Navbar />
    </div>
  )
}

export default App;

报错信息:

Uncaught SyntaxError: The requested module */src/components/index.jsx?t=1672200538218' does not provide an export named "Navbar"

请问通过index文件导入Navbar时哪里出错了?如何通过index文件导入多个组件?


错误原因与解决方法

错误原因

你在index.jsx中用**默认导出(export default)了一个包含组件的对象,但在App.jsx中却用命名导入(import {Navbar})**的方式获取,两种导出导入方式不匹配,导致报错。默认导出的内容只能用默认导入语法获取,命名导入需要对应命名导出。

正确实现方式

方式一:命名导出+命名导入(推荐)

修改index.jsx,将每个组件改为命名导出:

export { default as Navbar } from './Navbar/Navbar';
export { default as Greeting } from './Greeting/Greeting';
export { default as Project } from './Project/Project';
export { default as About } from './About/About';
export { default as Contact } from './Contact/Contact';
export { default as Footer } from './Footer/Footer';

这样在App.jsx中就能继续使用命名导入,还可以按需导入多个组件:

// 单个导入
import {Navbar} from './components';

// 多个导入
import {Navbar, Greeting, Project} from './components';

方式二:默认导出+默认导入

如果不想修改index.jsx的导出方式,可在App.jsx中用默认导入后解构使用:

import React from 'react';
import Components from './components';
const {Navbar} = Components;

const App = () => {
  return (
    <div>
      <Navbar />
    </div>
  )
}

export default App;

或者直接通过对象访问:

import React from 'react';
import Components from './components';

const App = () => {
  return (
    <div>
      <Components.Navbar />
    </div>
  )
}

export default App;

内容的提问来源于stack exchange,提问作者nhont

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 16:45:25