useInterval
Run a function at intervals.
Import
import { useInterval } from '@tidbcloud/uikit'Usage
import { useState } from 'react'
import { useInterval } from '@tidbcloud/uikit'
import { Button, Text, Group } from '@tidbcloud/uikit'
function Demo() {
const [seconds, setSeconds] = useState(0)
const interval = useInterval(() => setSeconds((s) => s + 1), 1000)
return (
<>
<Text>Timer: {seconds} seconds</Text>
<Group>
<Button onClick={interval.start} disabled={interval.active}>
Start
</Button>
<Button onClick={interval.stop} disabled={!interval.active}>
Stop
</Button>
<Button onClick={interval.toggle}>Toggle</Button>
</Group>
</>
)
}Auto Invoke
Start the interval automatically when the component mounts:
import { useInterval } from '@tidbcloud/uikit'
const interval = useInterval(() => console.log('Interval tick'), 1000, { autoInvoke: true })API
start()– start the intervalstop()– stop the intervaltoggle()– toggle the intervalactive– current interval status
Definition
interface UseIntervalOptions {
autoInvoke?: boolean
}
interface UseIntervalReturnValue {
start: () => void
stop: () => void
toggle: () => void
active: boolean
}
function useInterval(fn: () => void, interval: number, options?: UseIntervalOptions): UseIntervalReturnValue