개요

MeetupItem.js

import classes from './MeetupItem.module.css'

function MeetupItem(props) {
    return(
      <li className={classes.item}>
          <div className={classes.image}>
              <img src={props.image} alt={props.title}/>
          </div>
          <div className={classes.content}>
              <h3>{props.title}</h3>
              <address>{props.address}</address>
              <p>{props.description}</p>
          </div>
          <div className={classes.actions}>
              <button>To Favorites</button>
          </div>
      </li>
    );
}

export default MeetupItem;

MeetupList.js

import classes from './MeetupList.module.css'
import MeetupItem from "./MeetupItem";

function MeetupList(props) {
    return (
        <ul className={classes.list}>
            {props.meetups.map(meetup =>
                <MeetupItem
                    key={meetup.id}
                    id={meetup.id}
                    image={meetup.image}
                    title={meetup.title}
										address={meetup.address}
                    description={meetup.description}
                />
            )}
        </ul>
    );
}

export default MeetupList;

AllMeetups.js

const DUMMY_DATA = [
    {
        id: 'm1',
        title: 'This is a second meetup',
        image:
            '<https://upload.wikimedia.org/wikipedia/commons.jpg>',
        address: 'Meetupstreet 1, 54321 Meetup City',
        description:
            'This is a first',
    },
    {
        id: 'm2',
        title: 'This is a second meetup',
        image:
            '<https://upload.wikimedia.org/wikipedia/commons.jpg>',
        address: 'Meetupstreet 5, 12345 Meetup City',
        description:
            'This is a first',
    },
];

function AllMeetupsPage() {
    return (
        <section>
            <h1>All Meetups</h1>
            <MeetupList meetups={DUMMY_DATA} />
        </section>
    );
}

export default AllMeetupsPage;

npm start

Untitled