No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 

27 líneas
1.3 KiB

  1. import { DependencyList, EffectCallback } from 'react';
  2. export declare type EffectHook = (effect: EffectCallback, deps?: DependencyList) => void;
  3. export declare type IsEqual<TDeps extends DependencyList> = (nextDeps: TDeps, prevDeps: TDeps) => boolean;
  4. export declare type CustomEffectOptions<TDeps extends DependencyList> = {
  5. isEqual: IsEqual<TDeps>;
  6. effectHook?: EffectHook;
  7. };
  8. /**
  9. * a useEffect() hook with customized depedency comparision
  10. *
  11. * @param effect The effect callback
  12. * @param dependencies A list of dependencies
  13. * @param isEqual A function comparing the next and previous dependencyLists
  14. */
  15. declare function useCustomEffect<TDeps extends DependencyList = DependencyList>(effect: EffectCallback, dependencies: TDeps, isEqual: IsEqual<TDeps>): void;
  16. /**
  17. * a useEffect() hook with customized depedency comparision
  18. *
  19. * @param effect The effect callback
  20. * @param dependencies A list of dependencies
  21. * @param options
  22. * @param options.isEqual A function comparing the next and previous dependencyLists
  23. * @param options.effectHook the underlying effect hook used, defaults to useEffect
  24. */
  25. declare function useCustomEffect<TDeps extends DependencyList = DependencyList>(effect: EffectCallback, dependencies: TDeps, options: CustomEffectOptions<TDeps>): void;
  26. export default useCustomEffect;