はじめに
時間割アプリの開発にあたって、1~10の選択肢が表示されるセレクトボックスを作りました。
その際に記述したコードとその解説をしていきます。
機能の詳細
- 完成時の画面表示
- 実装する機能
1〜10までの選択肢を自動的に作り出してSelectBox
に表示する - 最終的なコード
ClassNumber
コンポーネントはstyled-component
によって<select>
タグと置き換えられています。
<ClassNumber>
{Array.from({ length: 10 }, (_, i) => (
<option key={i + 1}>{i + 1}</option>
))}
</ClassNumber>
解説
Array.from()
を使って10個の数字(1〜10)を選択肢として作成
1.Array.from({ length: 10 })
で長さ10の配列を作成
この配列の各要素は未定義の値だが、(_, i)
というコールバック関数*が渡されており、i
はインデックスを表しています(0〜9の数)。
*何らかのルーチンやアクションを完了させる関数
{Array.from({ length: 10 }, (_, i) => ())}
2.このインデックスi
に 1 を加えて(i + 1)
、<option>
タグの値として使用
つまり、1から10までの数字を表示する<option>
タグを10個作成する。
<option key={i + 1}>{i + 1}</option>
3.各option
タグには、key={i + 1}
という一意のキーが設定されている
Reactでは同じ要素をループで繰り返しレンダリングするときにキーが必要。
<ClassNumber>
{Array.from({ length: 10 }, (_, i) => (
<option key={i + 1}>{i + 1}</option>
))}
</ClassNumber>
さいごに
時間割アプリで使用した他の機能はこちら