개요

NewMeetups.js

import MeetupList from "../component/meetups/MeetupList";
import {useState} from "react";

function AllMeetupsPage() {
    const [isLoading, setIsLoading] = useState(true);
    const [loadedMeetups, setLoadMeetups] = useState([]);

    fetch(
        '<https://database-default-rtdb.firebaseio.com/meetups.json>'
    ).then(response => {
        return response.json();
    }).then(data => {
        setIsLoading(false);
        setLoadMeetups(data);
    });

    if (isLoading) {
        return (
          <section>
              <p>Loading...</p>
          </section>
        );
    }

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

export default AllMeetupsPage;

state

useEffect

import MeetupList from "../component/meetups/MeetupList";
import {useEffect, useState} from "react";

function AllMeetupsPage() {
    const [isLoading, setIsLoading] = useState(true);
    const [loadedMeetups, setLoadMeetups] = useState([]);

    useEffect(() => {
        setIsLoading(true);
        fetch(
            '<https://database-default-rtdb.firebaseio.com/meetups.json>'
        ).then(response => {
            return response.json();
        }).then(data => {
            const meetups = [];

            for (const key in data) {
                const meetup = {
                    id:  key,
                    ...data[key]
                };

                meetups.push(meetup);
            }

            setIsLoading(false);
            setLoadMeetups(meetups);
        });
    }, []);

    if (isLoading) {
        return (
          <section>
              <p>Loading...</p>
          </section>
        );
    }

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

export default AllMeetupsPage;