1.1 KiB
1.1 KiB
title, tags
| title | tags |
|---|---|
| Ticker | components,state,beginner |
Renders a ticker component.
- Use the
React.useState()hook to initialize thetickerstate variable to0. - Define two methods,
tickandreset, that will periodically incrementtimerbased onintervalIdand resetintervalIdrespectively. - Return a
<div>with two<button>elements, each of which callstickandresetrespectively.
const Ticker = ({ times, interval }) => {
const [ticker, setTicker] = React.useState(0);
let intervalId = null;
const tick = () => {
reset();
intervalId = setInterval(() => {
if (ticker < times) setTicker(ticker + 1);
else clearInterval(intervalId);
}, interval);
};
const reset = () => {
setTicker(0);
clearInterval(intervalId);
};
return (
<div>
<span style={{ fontSize: 100 }}>{ticker}</span>
<button onClick={tick}>Tick!</button>
<button onClick={reset}>Reset</button>
</div>
);
};
ReactDOM.render(<Ticker times={5} interval={1000} />, document.getElementById('root'));