Проблема с получением вношения и получения информации в контекст и с контекста для компонента

Я получаю информацию з бекенда виде json:

[
    {
        "id": 2,
        "name": "Lviv",
        "description": "Lviv is a capital of Great Britain",
        "images": [],
        "location": {
            "id": 1,
            "street": "Чорновола",
            "city": "Львів",
            "region": "Львівська область",
            "postalcode": "79007"
        },
        "relaxation_type": "Молодіжний",
        "trip_goal": "Насолодидись природою",
        "with_food": true,
        "with_sleep": true
    }
]

проблема в том, что если мест будет много мне надо как то заполнять контекст всеми местами, и делать 1 новый компонент для каждого места

Файл контекста:

import React, { createContext, useState, useContext } from 'react';

export const PlaceContext = createContext(); // Експортуйте UserContext


export const PlaceProvider = ({ children }) => {

    const [PlaceId, setPlaceId] = useState(null);
    const [PlaceName, setPlaceName] = useState("");
    const [PlaceDesc, setPlaceDesc] = useState("");
    const [PlaceLocation, setPlaceLocation] = useState({
        city: "",
        id: null,
        postalcode: "",
        region: "",
        street: ""
    });
    const [PlaceRelaxationType, setPlaceRelaxationType] = useState("");
    const [PlaceGoal, setPlaceGoal] = useState("");
    const [PlaceWithFood, setPlaceWithFood] = useState(false);
    const [PlaceWithSleep, setPlaceWithSleep] = useState(false);
    const [PlaceImages, setPlaceImages] = useState([]);

    return (
        <PlaceContext.Provider value={{ PlaceId, PlaceName, PlaceDesc, PlaceLocation, PlaceRelaxationType, PlaceGoal, PlaceWithFood, PlaceWithSleep, PlaceImages,setPlaceId,  setPlaceName, setPlaceDesc, setPlaceRelaxationType, setPlaceGoal, setPlaceWithFood, setPlaceWithSleep, setPlaceImages, setPlaceLocation}}>
            {children}
        </PlaceContext.Provider>
    );
};

export const usePlace = () => useContext(PlaceContext);

Файл компонента, в котором делается запрос:

import React, { useEffect, useContext } from 'react';
import { PlaceContext } from '../PlaceContext';
import FindComponentItem from "./FindComponentItem";

const CenterPart = () => {
    const { setPlaceId, setPlaceName, setPlaceDesc, setPlaceImages,
        setPlaceLocation, setPlaceRelaxationType, setPlaceGoal,
        setPlaceWithFood, setPlaceWithSleep } = useContext(PlaceContext);

    const fetchPlaceData = async () => {
        try {
            let response = await fetch('http://127.0.0.1:8000/places/', {
                method: 'GET',
                headers: {
                    "Content-Type": "application/json"
                }
            });
            if (response.ok) {
                let placesData = await response.json();
                console.log(placesData); // виводимо інформацію про місце в консоль
                console.log("Succesfully fetched"); // даємо в консолі відповідь про успішне завантаження даних
                // Оновлення стану компонента з отриманими даними про місце
                placesData.forEach(placeData=>{
                    setPlaceId(placeData.id);
                    setPlaceName(placeData.name);
                    setPlaceDesc(placeData.description);
                    setPlaceImages(placeData.images);
                    setPlaceLocation(placeData.location);
                    setPlaceRelaxationType(placeData.relaxation_type);
                    setPlaceGoal(placeData.trip_goal);
                    setPlaceWithFood(placeData.with_food);
                    setPlaceWithSleep(placeData.with_sleep);
                })
            } else {
                console.log("Fetching data failed!");
            }
        } catch (error) {
            console.error('Error fetching place data:', error);
        }
    };


    useEffect(() => {
        fetchPlaceData();
    }, []);

    const { places } = useContext(PlaceContext);

    return (
        <div>
            {places.map(place => (
                <FindComponentItem
                    key={place.PlaceId}
                    PlaceId={place.PlaceId}
                    PlaceName={place.PlaceName}
                    PlaceDesc={place.PlaceDesc}
                    PlaceLocation={place.PlaceLocation}
                    PlaceImages={place.PlaceImages}
                />
            ))}
        </div>
    );
}

export default CenterPart;

            
            
            
            

        

/// компонент, которий создается после запроса(их должно бить много в соответствии с числом мест), в json одно, но я потом добавлю

            import React, { Component } from 'react';
            import { NavLink } from 'react-router-dom';
            import './FindComponentItem.css';
            import ReadMoreComponent from "./ReadMoreComponent";
            import { PlaceContext } from "../PlaceContext";

            class FindComponentItem extends Component {
                static contextType = PlaceContext;

                render() {
                    const { PlaceName, PlaceId, PlaceImages, PlaceLocation } = this.context;
                    const { city } = PlaceLocation;
                    console.log(`PlaceName: ${PlaceName}, PlaceId: ${PlaceId}, PlaceImages: ${PlaceImages}, PlaceLocation: ${PlaceLocation}`)
                    return (
                        <div key={PlaceId}>
                            {/* Обробник натискання для показу ReadMoreInfoText */}
                            <NavLink to={"/read-more/"}>
                                <div className="FirstItem" style={{backgroundImage: `url(${PlaceImages})`}}>
                                    <button className="LikeButton"></button>
                                </div>
                            </NavLink>
                            <div className="UnderItmeText">
                                <span className="UnderItmeText1">{PlaceName}</span>
                                <br/>
                                <span className="UnderItmeText2">{city}</span>
                            </div>
                        </div>
                    );
                };
            }

            export default FindComponentItem;

Ответы (0 шт):