Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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)

AltStyle によって変換されたページ (->オリジナル) /