【问题标题】:Import css files and react components in a create-react-app application?在 create-react-app 应用程序中导入 css 文件和反应组件?
【发布时间】:2025-11-22 08:25:04
【问题描述】:

我刚开始使用 react.js 和 create-react-app 应用程序,如果这是一个明显的问题,请原谅。

我的 'src' 文件夹结构是这样的:

scr/
....components/
........ComponentA.jsx
........Componentb.jsx
....styles/
........ComponentA.css
....App.css
....App.js
....App.test.js
....index.css
....index.js
...OTHER DEFAULT FILES

在 App.js 我有这个:

import React, { Component } from 'react';
import ComponentA from './components/ComponentA';

class App extends Component {
  render() {
    return (
      <div className="App">
        <ComponentA />
      </div>
    );
  }
}

export default App;

ComponentA 我有这个:

import React, { Component } from 'react';
import './styles/ComponentA.css';
import ComponentB from './components/ComponentB';

class ComponentA extends Component {
  render() {
    return (
      <div className="componentAStyle">
        <ComponentB />
      </div>
    );
  }
}

export default ComponentA;

ComponentB 我有这个:

import React, { Component } from 'react';

class ComponentB extends Component {
  render() {
    return (
      <div>
        <h1>Hello from ComponentB</h1>
      </div>
    );
  }
}

export default ComponentB;

我要做的只是从ComponentA 导入ComponentB 并导入ComponentA 的样式,但今年秋天都显示以下消息:

Failed to compile
./src/components/ComponentA.jsx
Module not found: Can't resolve './styles/ComponentA.css' in 'C:\xampp\htdocs\custom-k39\src\components'
This error occurred during the build time and cannot be dismissed.

如果我删除 css 导入,则会出现另一条错误消息:

Failed to compile
./src/components/ComponentA.jsx
Module not found: Can't resolve './components/ComponentB' in 'C:\xampp\htdocs\custom-k39\src\components'
This error occurred during the build time and cannot be dismissed.

如何从另一个组件及其各自的 css 导入另一个组件?

谢谢。

【问题讨论】:

    标签: javascript reactjs create-react-app


    【解决方案1】:

    您需要使您正在导入的路径相对于执行导入的文件的当前位置。

    正确的导入应该是

     组件 A

    import React, { Component } from 'react';
    import '../styles/ComponentA.css';
    import ComponentB from './ComponentB';
    

    你可以在https://glitch.com/edit/#!/trashy-unicorn看到这个工作。
    (点击左上角的直播。)

    目前发生的错误是

    import ComponentB from './components/ComponentB';
    

    正在寻找路径

    src/components/components/ComponentB
    

    它不存在,因此会给您一个错误。你的样式也发生了同样的事情。

    希望这会有所帮助。

    【讨论】:

    • 谢谢!它帮助了我。但是现在你如何定位到 'src/' 文件夹中呢?例如如何从位于 'src/folderA/folderB/folderC/.../Component.jsx' 的组件中导入位于 'src' 文件夹根目录的模块?
    • 您可以使用 '../' 返回上一级文件夹 这是import '../styles/ComponentA.css'; 发生的情况,它返回一级,然后转到样式文件夹。您可以使用“../../”返回两个文件夹,依此类推。您需要计算距离 src 文件夹有多远,然后继续添加 '../' 直到到达那里。
    • 感谢 @kevin-mccarty 它帮助了我
    最近更新 更多