React Bootstrap Carousel

#javascript #reactjs #react-bootstrap

#javascript #reactjs #react-bootstrap

Вопрос:

В настоящее время я работаю над финальным проектом учебного лагеря по программированию, и есть только одна вещь, которую я, кажется, не могу понять (не уверен, возможно ли это).

У меня есть список действий, где я отображаю каждое действие в карточку (которая отлично работает). Теперь я хотел бы поместить эти карточки в React Bootstrap Carousel и показывать по 4 карточки одновременно. Когда я нажимаю на один из индикаторов, он должен перейти к следующей (или предыдущей) карте (а не к следующим 4 картам). Единственное, что я могу заставить работать, это иметь 1 карточку в карусели.

Надеюсь, что есть кто-то, кто может мне помочь.

Спасибо от непроизводителя тому, кто скоро станет noobDeveloper.

Вот мой код:

 import React, { useState, useEffect } from "react";
import "./Cardslider.css";
import Explorecard from "./Explorecard/Explorecard";
import axios from "axios";
import Carousel from "react-bootstrap/Carousel";

function createCard(area) {
  return (
    <Carousel.Item>
      <div>
        <Explorecard image={`images/${area.area}.jpg`} title={area.area} />
      </div>
    </Carousel.Item>
  );
}

const Cardslider = (props) => {
  const [listOfActivities, setListOfActivities] = useState([]);

  const getAllActivities = () => {
    axios
      .get("http://localhost:9999/activities")
      .then((responseFromApi) => {
        console.log(responseFromApi);
        setListOfActivities(responseFromApi.data);
      })
      .catch((error) => console.error(error));
  };

  useEffect(getAllActivities, []);

  return (
    <div className="cards-container">
      <Carousel className="explore-card-carousel" indicators={false}>
        {listOfActivities.map(createCard)}
      </Carousel>
    </div>
  );
};

export default Cardslider;
 

Комментарии:

1. в начале отображаются все 4 карты, а после щелчка отображается только одна? или с самого начала есть только один?

2. Отображается только одна карточка. Я хочу, чтобы он показывал 4 карты одновременно.

3. я думаю, что это странно. может попытаться войти listOfActivities.map(createCard) и посмотреть, есть ли 4 карты. если да, загляните в элементы DOM и посмотрите, есть ли 4 карты. если да, я не знаю 🙂

4. К сожалению, он показывает только 1 карту.

Ответ №1:

Перед использованием Карусели.Тег элемента, вы должны использовать тег Carousel .

Комментарии:

1. В этом случае было бы полезно обновить ваш ответ с помощью некоторого примера кода, это лучше проиллюстрировало бы вашу точку зрения, поскольку похоже, что OP уже делает это.