2.1.2 • Published 4 years ago
react-interval v2.1.2
react-interval 
Safe React wrapper for setInterval
Installation
NPM
npm install --save react react-interval
Don't forget to manually install peer dependencies (react
) if you use npm@3.
1998 Script Tag:
<script src="https://unpkg.com/react/dist/react.min.js"></script>
<script src="https://unpkg.com/react-interval/build/react-interval.min.js"></script>
(Module exposed as `ReactInterval`)
Demo
http://nkbt.github.io/react-interval
Codepen demo
http://codepen.io/nkbt/pen/ZGmpoO
Usage
Quickstart
Start counting on render
import ReactInterval from 'react-interval';
const App = React.createClass({
getInitialState() {
return {count: 0};
},
render() {
const {count} = this.state;
return (
<div>
{count}
<ReactInterval timeout={1000} enabled={true}
callback={() => this.setState({count: this.state.count + 1})} />
</div>
);
}
});
Full example
Change timeout on the fly, start and stop counting
import React from 'react';
import ReactDOM from 'react-dom';
import ReactInterval from 'react-interval';
const App = React.createClass({
getInitialState() {
return {
enabled: false,
timeout: 1000,
count: 0
};
},
render() {
const {timeout, enabled, count} = this.state;
return (
<div>
<ReactInterval {...{timeout, enabled}}
callback={() => this.setState({count: this.state.count + 1})} />
<input type="number" step="200" min="200" max="5000" value={this.state.timeout}
onChange={({target: {value}}) => this.setState({timeout: parseInt(value, 10)})} />
<button disabled={enabled} onClick={() => this.setState({enabled: true})}>
Start</button>
<button disabled={!enabled} onClick={() => this.setState({enabled: false})}>
Stop</button>
{count}
</div>
);
}
});
const appRoot = document.createElement('div');
document.body.appendChild(appRoot);
ReactDOM.render(<App />, appRoot);
Options
callback
: PropTypes.func.isRequired
Function repeatedly called after timeout
enabled
: PropTypes.bool (default: false)
Should start timer?
timeout
: PropTypes.number (default: 1000)
Timeout before each callback
call
License
MIT
2.1.2
4 years ago
2.1.1
6 years ago
2.1.0
6 years ago
2.0.2
8 years ago
2.0.1
8 years ago
1.3.3
9 years ago
1.3.2
9 years ago
1.3.1
9 years ago
1.3.0
9 years ago
1.2.1
10 years ago
1.2.0
10 years ago
1.0.8
10 years ago
1.0.6
10 years ago
1.0.5
10 years ago
1.0.4
10 years ago
1.0.3
10 years ago
1.0.2
10 years ago
1.0.1
10 years ago
2.0.0
10 years ago
1.1.0
10 years ago
1.0.0
10 years ago