useCycleList
循環瀏覽項目列表
useCycleList 在一個值清單中循環切換,提供 next、prev 和 go 控制函式。它回傳當前值、當前索引和控制物件。到達清單末尾時會回到開頭(反之亦然),形成循環。
使用場景
- 建構在固定選項集之間循環的切換器(例如主題切換:淺色/深色/自動)
- 實作輪播或幻燈片的上一個/下一個導航
- 在預定義的值集合中循環選擇
注意事項
- 循環行為:到達清單末尾後繼續會回到第一個元素,反之亦然。
- 索引控制:
go函式接受索引值以直接跳到特定項目。 - 相關 hooks:另請參閱
useCounter用於數值遞增/遞減,以及useToggle用於兩個值之間的切換。
Usage
Live Editor
function Demo() { const [state, next, prev] = useCycleList([ "Dog", "Cat", "Lizard", "Shark", "Whale", "Dolphin", "Octopus", "Seal", ]); return ( <div> <div>{state}</div> <div> <button onClick={() => next()}>下一個</button> <button onClick={() => prev()}>上一個</button> </div> </div> ); };
Result
API
useCycleList
Returns
readonly [T, (i?: number | undefined) => void, (i?: number | undefined) => void]: 包含以下元素的元組:
- 陣列中當前的索引對象值
- 設定索引為前一個的函數
- 設定索引為後一個的函數
Arguments
| 參數名 | 描述 | 類型 | 預設值 |
|---|---|---|---|
| list | 循环数组 | T[] (必填) | - |
| i | 数组索引 | number | undefined | - |