Skip to content

Commit 171b61b

Browse files
committed
clean up function doesn't only run when compnent unmounts
1 parent fd86bb4 commit 171b61b

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

src/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import React from 'react';
22
import ReactDOM from 'react-dom';
33

44
// import App from './useState-example';
5-
// import App from './useEffect-example';
5+
import App from './useEffect-example';
66
// import App from './customHook-example';
7-
import App from './useDataApiHook-example';
7+
// import App from './useDataApiHook-example';
88

99
import * as serviceWorker from './serviceWorker';
1010

src/useEffect-example/index.js

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,18 @@ function App() {
44
const [isOn, setIsOn] = useState(false);
55
const [timer, setTimer] = useState(0);
66

7-
useEffect(() => {
8-
const interval = setInterval(
9-
() => isOn && setTimer(timer + 1),
10-
1000,
11-
);
12-
13-
return () => clearInterval(interval);
14-
}, []);
7+
useEffect(
8+
() => {
9+
let interval;
10+
11+
if (isOn) {
12+
interval = setInterval(() => setTimer(timer + 1), 1000);
13+
}
14+
15+
return () => clearInterval(interval);
16+
},
17+
[isOn],
18+
);
1519

1620
const onReset = () => {
1721
setIsOn(false);

0 commit comments

Comments
 (0)