[React Bootstrap] Carousel を表示してみる | 心を無にして始める React
今回は、Carousel コンポーネントを表示します。
準備
まだ components フォルダがなければ作ります。
src
を右クリックして New Folder
。
components と入力してフォルダを作ります。
今回は、components フォルダに Carousel のコンポーネントを作って、表示してみます。
公式のドキュメントはここ。
https://react-bootstrap.github.io/components/carousel/
Carousel コンポーネントをつくる
component フォルダに Carousel.js
を作ります。
Carousel.js
を心を無にして編集してみます。
import React from 'react';
import { Carousel as BootstrapCarousel } from 'react-bootstrap';
/** @param {{ items: { children?: React.ReactNode, imgSrc?: string, imgAlt?: string }[] }} props */
function Carousel(props) {
const {
items,
...otherProps
} = props;
return (
<BootstrapCarousel {...otherProps}>
{
items.map(item => {
return (
<BootstrapCarousel.Item>
{
item.imgSrc && (
<img
className="d-block w-100"
src={item.imgSrc}
alt={item.imgAlt || ''}
/>
)
}
{
item.children && (
<BootstrapCarousel.Caption>
{item.children}
</BootstrapCarousel.Caption>
)
}
</BootstrapCarousel.Item>
);
})
}
</BootstrapCarousel>
)
}
export default Carousel;
プロジェクトでは、コンポーネントを統一したデザインで利用することが多いです。
そのため、(React Bootstrap のコンポーネントをその場その場でカスタマイズしながら使うよりも、)プロジェクトでコンポーネントにしたものを使うほうが、変更をお手軽に漏れなくできることが多いです。
Carousel コンポーネントを表示する
それでは、 App.js
を編集して Carousel コンポーネントを表示します。
import './App.css';
import Carousel from './components/Carousel';
function App() {
const carouselItems = [
{
children: (
<>
<h3>1枚目</h3>
<p>これは1枚目の説明です</p>
</>
),
imgSrc: "http://placehold.jp/373940/fafafa/800x400.jpg",
imgAlt: '画像の説明'
},
{
children: (
<>
<h3>2枚目</h3>
<p>これは2枚目の説明です</p>
</>
),
imgSrc: "http://placehold.jp/282c34/fafafa/800x400.jpg",
imgAlt: '画像の説明'
},
{
children: (
<>
<h3>3枚目</h3>
<p>これは3枚目の説明です</p>
</>
),
imgSrc: "http://placehold.jp/20232a/fafafa/800x400.jpg",
imgAlt: '画像の説明'
},
];
return (
<div className="m-5">
<Carousel items={carouselItems} />
</div >
);
}
export default App;
画面を確認してみます。
はい、できました。