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

React多组件渲染报错:'Greeting'未从'./components/Home'导出,求解答

解决 "Greeting is not exported from './components/Home'" 的错误

嘿,我帮你定位到问题啦!你的代码里藏着一个容易忽略的小问题——Home.js里重复导入了React,这干扰了模块解析逻辑,导致后续的导出语句没被正常识别,所以App.js才会报错找不到Greeting的导出。

问题代码分析

看你的Home.js开头部分:

import React, { Component } from "react";
import React from "react"; // 这里是多余的重复导入!

你已经通过第一行导入了React和Component,第二行又重复导入React,这会让打包工具(比如Webpack)或Babel对模块的解析出现异常,直接导致后面的export { Home, Page, Greeting };无法被正确处理,最终App.js里的解构导入就找不到Greeting了。

修复步骤

只需要删掉第二行重复的import React from "react";,保留第一行的导入即可:

// Home.js 修正后的开头
import React, { Component } from "react";

// 下面的组件代码保持不变
class Home extends Component {
  render() {
    return (
      <div className="box">
        <h1>Its a box man!</h1>
      </div>
    );
  }
}
class Page extends Component {
  render() {
    return (
      <div className="box">
        <h1>Its a second box man! from the other Component</h1>
      </div>
    );
  }
}
const Greeting = () => {
  return <h1>Hello again</h1>;
};
export { Home, Page, Greeting };

保存文件后重新运行项目,这个导入错误应该就会消失啦!

额外小贴士

  • 在React 17及以后的版本中,函数组件可以不用显式导入React,但类组件还是需要导入Component(或者写成class Home extends React.Component),保留统一的导入方式会让代码更一致。
  • 你用的「同一文件导出多个组件+解构导入」的写法是完全正确的,只要模块没有语法错误,这种方式非常适合练习组件的导出导入逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:18:51