Информация о файлах cookie на этой странице

Наш сайт использует файлы cookie, чтобы обеспечивать его работу, а также собирать и анализировать данные о работе и использовании сайта. Политика конфиденциальности

  • Курсы
    • Discord
    • Twitter
    • Linkedin
    • Facebook
    • Instagram
  • Тарифы
  • English
  • Čeština
  • Deutsch
  • Русский
ВойтиНачать бесплатно
  • Курсы
  • Тарифы

Сообщество

Войти
  
  • Курсы
    • Discord
    • Twitter
    • Linkedin
    • Facebook
    • Instagram
  • Тарифы
  • English
  • Čeština
  • Deutsch
  • Русский
ВойтиНачать бесплатно
  • Курсы
  • Тарифы

Сообщество

Войти

Фильмы из данных

Каждую неделю в кинотеатре идут другие фильмы. На старом сайте новый фильм означал: скопировать карточку в HTML и поменять тексты, причём три карточки должны были остаться одинаковыми. В React фильмы — это данные, а один компонент рисует карточку для каждого из них, как в уроке «Списки и условия».

Теперь Home.jsx начинается с данных: массив films, по одному объекту на фильм, в каждом есть id, название title, жанр genre, продолжительность length в минутах и описание description. Карточка — отдельный компонент, FilmCard в FilmCard.jsx, который получает фильм целиком в одном пропе, как в упражнении «Объекты и массивы» урока «Пропсы»:

export default function FilmCard({ film }) {
    return (
        <div className="rounded-2xl border border-stone-200 bg-white p-6 shadow-sm">
            <h3 className="font-display text-xl font-bold text-night">
                {film.title}
            </h3>
            …
        </div>
    );
}

Строка под названием собирается из двух значений и текста: {film.genre} · {film.length} мин показывает Драма · 112 мин. Затем Home превращает массив в карточки с помощью map(), и у каждой карточки есть ключ — id фильма:

{films.map((film) => (
    <FilmCard key={film.id} film={film} />
))}

Фильмы новой недели теперь — просто новые данные, а карточки подстраиваются сами. Данные могли бы даже приходить из файла, как расписание в следующем упражнении.

Задание

  1. 1

    В FilmCard.jsx напишите компонент FilmCard, который возвращает JSX одной карточки из Home.jsx, с названием, жанром и продолжительностью и описанием из film, и экспортируйте его. В Home.jsx импортируйте его и замените первую карточку на <FilmCard film={films[0]} />. Карточка выглядит как раньше.

  2. 2

    Замените все три карточки на films.map(), как в примере выше. В консоли не должно появляться предупреждения о ключах.

Назад

3/9

  1. 1. Кинотеатр как приложение на React
  2. 2. Две страницы в одном приложении
  3. 3. Фильмы из данных
  4. 4. Загрузка расписания
  5. 5. Выбор дня
  6. 6. Выбор мест
  7. 7. Форма бронирования
  8. 8. Запоминаем билеты
  9. 9. Поздравляем!
Далее

Начните программировать бесплатно

Регистрируясь, вы принимаете Условия использования и Политику конфиденциальности.

Или зарегистрируйтесь через: