Skip to content

Commit 78fee92

Browse files
committed
adding useEffect example trick
1 parent 7c878bf commit 78fee92

2 files changed

Lines changed: 54 additions & 0 deletions

File tree

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import React from "react";
2+
import ActionButton from "../../commons/ActionButton";
3+
4+
const Child = ({ strs, setStrs }: { strs: string[]; setStrs: (strs: string[]) => void }) => {
5+
const [state, setState] = React.useState<string[]>(strs);
6+
7+
React.useEffect(() => {
8+
setState(strs);
9+
// eslint-disable-next-line
10+
}, strs);
11+
12+
return (
13+
<>
14+
<pre>{JSON.stringify(state, null, 2)}</pre>
15+
<ul>
16+
<li>
17+
<ActionButton
18+
label="add string"
19+
onClick={() => {
20+
const str = prompt();
21+
if (str) {
22+
setStrs([...strs, str]);
23+
}
24+
}}
25+
/>
26+
</li>
27+
</ul>
28+
</>
29+
);
30+
};
31+
32+
const ExampleUseEffect107 = () => {
33+
const [strs, setStrs] = React.useState<string[]>([]);
34+
35+
return <Child strs={strs} setStrs={setStrs} />;
36+
};
37+
38+
export default ExampleUseEffect107;

src/examples/use-effect-1/index.tsx

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import ExampleUseEffect104Code from "!raw-loader!./ExampleUseEffect104";
1010
import ExampleUseEffect105Code from "!raw-loader!./ExampleUseEffect105";
1111
/* eslint import/no-webpack-loader-syntax: off */
1212
import ExampleUseEffect106Code from "!raw-loader!./ExampleUseEffect106";
13+
/* eslint import/no-webpack-loader-syntax: off */
14+
import ExampleUseEffect107Code from "!raw-loader!./ExampleUseEffect107";
1315
import React from "react";
1416
import { IExample } from "../../commons/types";
1517
import ExampleUseEffect101 from "./ExampleUseEffect101";
@@ -18,6 +20,7 @@ import ExampleUseEffect103 from "./ExampleUseEffect103";
1820
import ExampleUseEffect104 from "./ExampleUseEffect104";
1921
import ExampleUseEffect105 from "./ExampleUseEffect105";
2022
import ExampleUseEffect106 from "./ExampleUseEffect106";
23+
import ExampleUseEffect107 from "./ExampleUseEffect107";
2124

2225
const examples: IExample[] = [
2326
{
@@ -139,6 +142,19 @@ const examples: IExample[] = [
139142
section what is its purpose.
140143
</>
141144
)
145+
},
146+
{
147+
title: "useEffect 107",
148+
Component: ExampleUseEffect107,
149+
code: ExampleUseEffect107Code,
150+
preface: <>How does a useEffect handle objects in dependencies ?</>,
151+
explanation: (
152+
<>
153+
Unfortunately, badly.
154+
<br />
155+
Keep es-lint updated and be ready to tricks it many times.
156+
</>
157+
)
142158
}
143159
];
144160

0 commit comments

Comments
 (0)