File tree Expand file tree Collapse file tree 2 files changed +5
-11
lines changed Expand file tree Collapse file tree 2 files changed +5
-11
lines changed Original file line number Diff line number Diff line change @@ -11,14 +11,14 @@ const Demo = () => {
11
11
< pre > { JSON . stringify ( state , null , 2 ) } </ pre >
12
12
< button onClick = { ( ) => setState ( { hello : 'world' } ) } > hello</ button >
13
13
< button onClick = { ( ) => setState ( { foo : 'bar' } ) } > foo</ button >
14
- < button
14
+ < button
15
15
onClick = { ( ) => {
16
16
setState ( ( prevState ) => ( {
17
17
count : prevState . count === undefined ? 0 : prevState . count + 1 ,
18
18
} ) )
19
19
} }
20
20
>
21
- count
21
+ increment
22
22
</ button >
23
23
</ div >
24
24
) ;
Original file line number Diff line number Diff line change @@ -2,15 +2,9 @@ import {useState} from 'react';
2
2
3
3
const useSetState = < T extends object > ( initialState : T = { } as T ) : [ T , ( patch : Partial < T > | Function ) => void ] => {
4
4
const [ state , set ] = useState < T > ( initialState ) ;
5
- const setState = ( patch ) => {
6
- if ( patch instanceof Function ) {
7
- set ( ( prevState ) => {
8
- return Object . assign ( state , patch ( prevState ) )
9
- } )
10
- } else {
11
- Object . assign ( state , patch ) ;
12
- set ( state ) ;
13
- }
5
+ const setState = patch => {
6
+ if ( patch instanceof Function ) set ( prevState => Object . assign ( { } , prevState , patch ( prevState ) ) ) ;
7
+ else set ( Object . assign ( { } , state , patch ) ) ;
14
8
} ;
15
9
16
10
return [ state , setState ] ;
You canβt perform that action at this time.
0 commit comments