es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El CSS de React.js no se aplica al DOM.

Tengo un componente App.js y una hoja de estilos App.css que me gustaría cargar en consecuencia.

Esto es lo que tengo:

// App.js

import React, { Component } from "react";
import { render } from "react-dom";
import './App.css';
import Header from "./Header";
import Body from "./Body";
import Footer from "./Footer";

export default class App extends Component {
  constructor(props) {
    super(props);
  }

  render() {
    return (
      <div classname="{'AppWrapper'}">
        <header></header>
        <body></body>
        <footer></footer>
      </div>
    );
  }
}

const appDiv = document.getElementById("app");
render(<app></app>, appDiv);
// App.css

.AppWrapper {
    width: 100%;
}
// Webpack config

const path = require("path");
const webpack = require("webpack");

module.exports = {
  entry: "./src/index.js",
  output: {
    path: path.resolve(__dirname, "./static/frontend"),
    filename: "[name].js",
  },
  module: {
    rules: [
      {
        test: /.js$/,
        exclude: /node_modules/,
        use: {
          loader: "babel-loader",
        },
      }, {
        test: /.css$/,
        exclude: /node_modules/,
        use: ["css-loader"],
      },
    ],
  },
  optimization: {
    minimize: true,
  },
  plugins: [
    new webpack.DefinePlugin({
      "process.env": {
        // Esto afecta al tamaño de la librería de React
        NODE_ENV: JSON.stringify("development"),
      },
    }),
  ],
};

Sin embargo, la clase CSS no se aplica al DOM al renderizar la página. No hay errores o problemas aparentes.

¿Qué me estoy perdiendo?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Una posible razón para este problema es que el cargador de CSS no está configurado correctamente en el archivo de configuración de webpack. El código muestra que se utiliza el css-loader, pero no se encadena con otros cargadores, como el style-loader, que es responsable de inyectar el CSS en el DOM. Una forma de resolver esto es reemplazar la línea use: ["css-loader"], con use: ["style-loader", "css-loader"], en el archivo de configuración de webpack.

    Esto encadenará los dos cargadores e inyectará los estilos en el DOM.

Comments are closed.