feat: useNoInitialEffect in CommonDisplay (fix #14)
This commit is contained in:
		
							parent
							
								
									1b1c0f4228
								
							
						
					
					
						commit
						f2745d713c
					
				|  | @ -1,5 +1,5 @@ | |||
| import { useRouter } from 'next/router'; | ||||
| import React, { Fragment, useEffect, useState } from 'react'; | ||||
| import React, { DependencyList, EffectCallback, Fragment, useEffect, useState } from 'react'; | ||||
| 
 | ||||
| import ButtonsForStars from '../display/buttonsForStars'; | ||||
| import Form from '../display/form'; | ||||
|  | @ -44,6 +44,17 @@ export const defaultQueryParameters: QueryParametersWithoutNum = { | |||
| }; | ||||
| export const defaultNumDisplay = 21; | ||||
| 
 | ||||
| const useNoInitialEffect = (effect: EffectCallback, deps: DependencyList) => { | ||||
|   const initial = React.useRef(true); | ||||
|   useEffect(() => { | ||||
|     if (initial.current) { | ||||
|       initial.current = false; | ||||
|       return; | ||||
|     } | ||||
|     return effect(); | ||||
|   }, deps); | ||||
| }; | ||||
| 
 | ||||
| /* Body */ | ||||
| const CommonDisplay: React.FC<Props> = ({ | ||||
|   defaultResults, | ||||
|  | @ -159,9 +170,9 @@ const CommonDisplay: React.FC<Props> = ({ | |||
|     }); | ||||
|   }; | ||||
| 
 | ||||
|   useEffect(updateRoute, [numDisplay]); | ||||
|   useNoInitialEffect(updateRoute, [numDisplay]); | ||||
| 
 | ||||
|   useEffect(() => { | ||||
|   useNoInitialEffect(() => { | ||||
|     setResults([]); | ||||
|     let newTimeoutId = setTimeout(() => { | ||||
|       updateRoute(); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user