ReactJS Reactstrap Carousel Component
Last Updated :
07 Aug, 2024
Reactstrap is a popular front-end library that is easy to use React Bootstrap 4 components. This library contains the stateless React components for Bootstrap 4. The Carousel component allows the user to show the sliding item, and it is used when there is a group of content on the same level. We can use the following approach in ReactJS to use the ReactJS Reactstrap Carousel Component.
Carousel Props:
- activeIndex: It is used to control the current active visible slide.
- next: It is a callback function that is triggered when the next button is clicked.
- previous: It is a callback function that is triggered when the previous button is clicked.
- keyboard: It is used to indicate whether the carousel should react to the keyboard event or not.
- pause: It is used to pause the slide based on different mouse events.
- ride: It is used to autoplay the carousel after the user manually cycles the first item.
- interval: It is used to delay time between automatically cycling movement for these items.
- children: It is used to pass the children element to this component.
- mouseEnter: It is a callback function that is triggered when the mouse enters the Carousel.
- mouseLeave: It is a callback function that is triggered when the mouse exits the Carousel.
- slide: It is used to enable the animation between slides.
- cssModule: It is used to denote the CSS module for styling.
- enableTouch: It is used to indicate whether the touch gestures on the Carousel works or not.
CarouselItem Props:
- tag: It is used to denote the tag for this component.
- in: It is used to denote whether to show an item or not.
- cssModule: It is used to denote the CSS module for styling.
- children: It is used to pass the children element to this component.
- slide: It is used to enable the animation between slides.
CarouselControl Props:
- direction: It is used to denote the direction like next or previous.
- onClickHandler: It is a callback function that is triggered when it is clicked.
- cssModule: It is used to denote the CSS module for styling.
- directionText: It is used to denote the direction text.
CarouselIndicators Props:
- items: It is used to denote the items array.
- activeIndex: It is used to control the current active visible slide.
- cssModule: It is used to denote the CSS module for styling.
- onClickHandler: It is a callback function that is triggered when it is clicked.
CarouselCaption Props:
- captionHeader: It is used to denote the caption header value.
- captionText: It is used to denote the caption text value.
- cssModule: It is used to denote the CSS module for styling.
UncontrolledCarousel Props:
- items: It is used to denote the items array.
- indicators: It is used to show a set of slide position indicators.
- controls: It is used to indicate whether it has controls or not.
- autoPlay: It is used to indicate whether it can be auto-played or not.
Creating React Application And Installing Module:
Project Structure: It will look like the following.
Project StructureExample 1: Now write down the following code in the App.js file. Here, we have used the Carousel component with the carousel control buttons.
App.js
import React from 'react'
import 'bootstrap/dist/css/bootstrap.min.css';
import {
CarouselControl,
Carousel,
CarouselItem,
CarouselIndicators,
} from 'reactstrap';
function App() {
// State for Active index
const [activeIndex, setActiveIndex] = React.useState(0);
// State for Animation
const [animating, setAnimating] = React.useState(false);
// Sample items for Carousel
const items = [
{
caption: 'Sample Caption One',src:
'https://media.geeksforgeeks.org/wp-content/uploads/20210425122739/2-300x115.png',
altText: 'Slide One'
},
{
caption: 'Sample Caption Two',src:
'https://media.geeksforgeeks.org/wp-content/uploads/20210425122716/1-300x115.png',
altText: 'Slide Two'
}
];
// Items array length
const itemLength = items.length - 1
// Previous button for Carousel
const previousButton = () => {
if (animating) return;
const nextIndex = activeIndex === 0 ?
itemLength : activeIndex - 1;
setActiveIndex(nextIndex);
}
// Next button for Carousel
const nextButton = () => {
if (animating) return;
const nextIndex = activeIndex === itemLength ?
0 : activeIndex + 1;
setActiveIndex(nextIndex);
}
// Carousel Item Data
const carouselItemData = items.map((item) => {
return (
<CarouselItem
key={item.src}
onExited={() => setAnimating(false)}
onExiting={() => setAnimating(true)}
>
<img src={item.src} alt={item.altText} />
</CarouselItem>
);
});
return (
<div style={{
display: 'block', width: 320, padding: 30
}}>
<h8>ReactJS Reactstrap Carousel Component</h8>
<Carousel previous={previousButton} next={nextButton}
activeIndex={activeIndex}>
<CarouselIndicators items={items}
activeIndex={activeIndex}
onClickHandler={(newIndex) => {
if (animating) return;
setActiveIndex(newIndex);
}} />
{carouselItemData}
<CarouselControl directionText="Prev"
direction="prev" onClickHandler={previousButton} />
<CarouselControl directionText="Next"
direction="next" onClickHandler={nextButton} />
</Carousel>
</div >
);
}
export default App;
Step to Run Application: Run the application using the following command from the root directory of the project:
npm start
Output: Now open your browser and go to http://localhost:3000/, you will see the following output:
Example 2: Now write down the following code in the App.js file. Here, we have used the Carousel component without the carousel control buttons.
App.js
import React from 'react'
import 'bootstrap/dist/css/bootstrap.min.css';
import {
Carousel,
CarouselItem,
CarouselIndicators,
} from 'reactstrap';
function App() {
// State for Active index
const [activeIndex, setActiveIndex] = React.useState(0);
// State for Animation
const [animating, setAnimating] = React.useState(false);
// Sample items for Carousel
const items = [
{src:
'https://media.geeksforgeeks.org/wp-content/cdn-uploads/20190603152813/ml_gaming.png',
},
{src:
'https://media.geeksforgeeks.org/wp-content/cdn-uploads/20190528184201/gateexam.png',
}
];
// Items array length
const itemLength = items.length - 1
// Previous button for Carousel
const previousButton = () => {
if (animating) return;
const nextIndex = activeIndex === 0 ?
itemLength : activeIndex - 1;
setActiveIndex(nextIndex);
}
// Next button for Carousel
const nextButton = () => {
if (animating) return;
const nextIndex = activeIndex === itemLength ?
0 : activeIndex + 1;
setActiveIndex(nextIndex);
}
// Carousel Item Data
const carouselItemData = items.map((item) => {
return (
<CarouselItem
key={item.src}
onExited={() => setAnimating(false)}
onExiting={() => setAnimating(true)}
>
<img src={item.src} alt={item.altText} />
</CarouselItem>
);
});
return (
<div style={{
display: 'block', padding: 30
}}>
<h1>ReactJS Reactstrap Carousel Component</h1>
<Carousel previous={previousButton} next={nextButton}
activeIndex={activeIndex}>
<CarouselIndicators items={items}
activeIndex={activeIndex}
onClickHandler={(newIndex) => {
if (animating) return;
setActiveIndex(newIndex);
}} />
{carouselItemData}
</Carousel>
</div >
);
}
export default App;
Step to Run Application: Run the application using the following command from the root directory of the project:
npm start
Output: Now open your browser and go to http://localhost:3000/, you will see the following output:
Reference: Â https://reactstrap.github.io/components/carousel/
Similar Reads
React Interview Questions and Answers React is an efficient, flexible, and open-source JavaScript library that allows developers to create simple, fast, and scalable web applications. Jordan Walke, a software engineer who was working for Facebook, created React. Developers with a JavaScript background can easily develop web applications
15+ min read
React Tutorial React is a powerful JavaScript library for building fast, scalable front-end applications. Created by Facebook, it's known for its component-based structure, single-page applications (SPAs), and virtual DOM,enabling efficient UI updates and a seamless user experience.Note: The latest stable version
7 min read
90+ React Projects with Source Code [2025] React, managed by Facebook and a vibrant community of developers and companies, is a JavaScript library designed to craft dynamic user interfaces. It empowers developers with concepts like React web apps, components, props, states, and component lifecycles. With a primary focus on building single-pa
12 min read
Frontend Developer Interview Questions and Answers Frontend development is an important part of web applications, and it is used to build dynamic and user-friendly web applications with an interactive user interface (UI). Many companies are hiring skilled Frontend developers with expertise in HTML, CSS, JavaScript, and modern frameworks and librarie
15+ min read
React Introduction ReactJS is a component-based JavaScript library used to build dynamic and interactive user interfaces. It simplifies the creation of single-page applications (SPAs) with a focus on performance and maintainability.It is developed and maintained by Facebook.The latest version of React is React 19.Uses
8 min read
React Hooks ReactJS Hooks are one of the most powerful features of React, introduced in version 16.8. They allow developers to use state and other React features without writing a class component. Hooks simplify the code, make it more readable, and offer a more functional approach to React development. With hoo
10 min read
React JSX JSX stands for JavaScript XML, and it is a special syntax used in React to simplify building user interfaces. JSX allows you to write HTML-like code directly inside JavaScript, enabling you to create UI components more efficiently. Although JSX looks like regular HTML, itâs actually a syntax extensi
6 min read
React Router React Router is a library for handling routing and navigation in React JS Applications. It allows you to create dynamic routes, providing a seamless user experience by mapping various URLs to components. It enables navigation in a single-page application (SPA) without refreshing the entire page.This
6 min read
ReactJS Virtual DOM ReactJS Virtual DOM is an in-memory representation of the actual DOM (Document Object Model). React uses this lightweight JavaScript object to track changes in the application state and efficiently update the actual DOM only where necessary.What is the Virtual DOM?The Virtual DOM (VDOM) is a lightwe
4 min read
How to Install ReactJS on Windows: Step-by-Step Guide ReactJS has become one of the most popular JavaScript libraries for building dynamic and interactive user interfaces, powering some of the biggest websites and applications across the web. If you're a Windows user eager to dive into React development, setting up your environment properly is the firs
8 min read