mirror of
https://github.com/streamich/react-use.git
synced 2025-12-08 18:02:14 +00:00
- `useTimeoutFn` based implementation (as a special case of it); - improved docs; - added tests;
49 lines
1.1 KiB
Markdown
49 lines
1.1 KiB
Markdown
# `useTimeout`
|
|
|
|
Re-renders the component after a specified number of milliseconds.
|
|
Provides handles to cancel and/or reset the timeout.
|
|
|
|
## Usage
|
|
|
|
```jsx
|
|
import { useTimeout } from 'react-use';
|
|
|
|
function TestComponent(props: { ms?: number } = {}) {
|
|
const ms = props.ms || 5000;
|
|
const [isReady, cancel] = useTimeout(ms);
|
|
|
|
return (
|
|
<div>
|
|
{ isReady() ? 'I\'m reloaded after timeout' : `I will be reloaded after ${ ms / 1000 }s` }
|
|
{ isReady() === false ? <button onClick={ cancel }>Cancel</button> : '' }
|
|
</div>
|
|
);
|
|
}
|
|
|
|
const Demo = () => {
|
|
return (
|
|
<div>
|
|
<TestComponent />
|
|
<TestComponent ms={ 10000 } />
|
|
</div>
|
|
);
|
|
};
|
|
```
|
|
|
|
## Reference
|
|
|
|
```ts
|
|
const [
|
|
isReady: () => boolean | null,
|
|
cancel: () => void,
|
|
reset: () => void,
|
|
] = useTimeout(ms: number = 0);
|
|
```
|
|
|
|
- **`isReady`**_` :()=>boolean|null`_ - function returning current timeout state:
|
|
- `false` - pending re-render
|
|
- `true` - re-render performed
|
|
- `null` - re-render cancelled
|
|
- **`cancel`**_` :()=>void`_ - cancel the timeout (component will not be re-rendered)
|
|
- **`reset`**_` :()=>void`_ - reset the timeout
|