Home > Software engineering >  React Wrapping up component around js content
React Wrapping up component around js content

Time:04-01

So i am making a react project in which everything works fine until i start wrapping my component. So basically Card.js is wrapping around Meetupitem.js and Layout.js is wrapping around App.js. before this is looks fine - https://github.com/mohitRana-04/React-1/tree/first/react-day4 but after this i start facing error. I have used props.children to take all the information which are being passed to the respective components. And Folder having this issue - https://github.com/mohitRana-04/React-1/tree/first/react-day5

Compiled with problems:X

ERROR in ./src/components/layout/Layout.module.css (./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[6].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[6].use[2]!./node_modules/source-map-loader/dist/cjs.js!./src/components/layout/Layout.module.css)

Module build failed (from ./node_modules/css-loader/dist/cjs.js):
Error: Invalid class or id selector syntax
    at C:\Users\mohit\Desktop\Project\React-1\react-day4\src\components\layout\Layout.module.css:1:1
    at transform (C:\Users\mohit\Desktop\Project\React-1\react-day4\node_modules\postcss-modules-local-by-default\src\index.js:198:17)
    at C:\Users\mohit\Desktop\Project\React-1\react-day4\node_modules\postcss-modules-local-by-default\src\index.js:79:44
    at Array.map (<anonymous>)
    at Selector.map (C:\Users\mohit\Desktop\Project\React-1\react-day4\node_modules\postcss-selector-parser\dist\selectors\container.js:347:23)
    at transform (C:\Users\mohit\Desktop\Project\React-1\react-day4\node_modules\postcss-modules-local-by-default\src\index.js:79:25)
    at C:\Users\mohit\Desktop\Project\React-1\react-day4\node_modules\postcss-modules-local-by-default\src\index.js:54:15
    at Array.map (<anonymous>)
    at transform (C:\Users\mohit\Desktop\Project\React-1\react-day4\node_modules\postcss-modules-local-by-default\src\index.js:46:31)
    at Processor.func (C:\Users\mohit\Desktop\Project\React-1\react-day4\node_modules\postcss-modules-local-by-default\src\index.js:238:5)
    at Processor._runSync (C:\Users\mohit\Desktop\Project\React-1\react-day4\node_modules\postcss-selector-parser\dist\processor.js:102:26)

Layout.js

import React from "react";
import classes from "./Layout.module.css";
import MainNavigation from "./MainNavigation";
function Layout({ props }) {
  return (
    <div>
      <MainNavigation />
      <main className={classes.main}>{props.children}</main>
    </div>
  );
}

export default Layout;

MeetupItem.js

import React from "react";
import classes from "./Layout.module.css";
import MainNavigation from "./MainNavigation";
function Layout({ props }) {
  return (
    <div>
      <MainNavigation />
      <main className={classes.main}>{props.children}</main>
    </div>
  );
}

export default Layout;

App.js

import React from "react";
import { Routes, Route } from "react-router-dom";
import AllMeetupsPage from "./pages/AllMeetups";
import FavoritesPage from "./pages/Favorites";
import NewMeetupPage from "./pages/NewMeetup";
// import MainNavigation from "./components/layout/MainNavigation";
import Layout from "./components/layout/Layout";

function App() {
  return (
    <Layout>
      <Routes>
        <Route path="/" element={<AllMeetupsPage />} />
      </Routes>
      <Routes>
        <Route path="/favorites" element={<FavoritesPage />} />
      </Routes>
      <Routes>
        <Route path="/new-meetup" element={<NewMeetupPage />} />
      </Routes>
    </Layout>
  );
}

export default App;

Card.js

import React from "react";
import classes from "./Card.module.css";

function Card(props) {
  return <div className={classes.Card}>{props.children}</div>;
}

export default Card;

CodePudding user response:

in directory react-day5/src/components/layout/Layout.module.css you have defined a class selector incorrectly . main must be .main without spaces.that's it.

CodePudding user response:

You are destructuring the props in the Layout component but supplying props as the property. this should either be:

    function Layout({ children }) {
  return (
    <div>
      <MainNavigation />
      <main className={classes.main}>{children}</main>
    </div>
  );
}

Or

function Layout(props) 
  • Related