@modern-kit/react
Version:
27 lines (24 loc) • 1.29 kB
TypeScript
import { DependencyList, EffectCallback } from 'react';
/**
* @description 주어진 조건이 true일 때 effect를 실행하는 커스텀 훅입니다.
*
* 의존성 배열이 변경될 때마다 주어진 조건을 확인하고 true일 때 effectCallback 함수를 실행합니다.
*
* 조건 함수인 경우 이전 의존성 배열(prevDeps)과 현재 의존성 배열(currentDeps)을 인자로 받아 더 세밀한 조건 판단을 할 수 있습니다.
*
* @template D - 의존성 리스트의 타입
* @param {EffectCallback} effectCallback - 실행할 effectCallback 함수
* @param {D} deps - 의존성 리스트
* @param {boolean | ((prevDeps: D | undefined, currentDeps: D) => boolean)} condition - effectCallback 함수를 실행할 조건을 결정하는 함수 또는 불리언 값.
* @example
* useConditionalEffect(
* () => {
* console.log('effect');
* },
* [count],
* // 의존성 배열의 count가 증가할 때만 effect 실행
* (prevDeps, currentDeps) => prevDeps != null && prevDeps[0] < currentDeps[0]
* );
*/
declare function useConditionalEffect<D extends DependencyList>(effectCallback: EffectCallback, deps: D, condition: boolean | ((prevDeps: D | undefined, currentDeps: D) => boolean)): void;
export { useConditionalEffect };