搜索...
一个帮助创建可以循环遍历列表的 React 钩子。
如果您需要管理在两个稳定值之间切换的状态,考虑使用 useToggle 作为替代方案。
请查看 API。
点击下方链接跳转 GitHub 查看源代码。
const [value, index, actions] = useCircularList<T>(initialList: T[], options 选项 Options \{#options})
export interface UseCycleListOptions<T, R extends T = T> { /** * 初始值 */ initialValue?: R /** * 当值未找到时的回退索引 */ fallbackIndex?: number /** * 自定义函数来获取值的索引 * * @param {T} value - `T`,要查找的值 * @param {T[]} list - `T[]`,要搜索的列表 * @returns {number} `number`,值的索引 */ getIndexOf?: (value: T, list: T[]) => number }
export type UseCycleListReturnsActions<T> = { /** * 移至下一个值 * * @param {number} [step] - `number`,移动的步数 * @returns {T} `T`,下一个值 */ next: (step?: number) => T /** * 移至上一个值 * * @param {number} [step] - `number`,移动的步数 * @returns {T} `T`,上一个值 */ prev: (step?: number) => T /** * 移至指定索引处的值 * * @param {number} index - `number`,要移动的索引 * @returns {T} `T`,指定索引处的值 */ go: (index: number) => T } export type UseCycleListReturns<T> = readonly [ /** * 当前值 */ state: T, /** * 控制列表的操作 */ UseCycleListReturnsActions<T>, /** * 当前索引 */ index: number, ]