Skip to content

Commit b52e8e0

Browse files
committed
feat: Add useEffect
1 parent db773da commit b52e8e0

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

src/hooks/useEffect.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import * as React from 'react';
2+
3+
/** As `React.useEffect` but pass origin value in callback and not need care deps length change. */
4+
export default function useEffect(
5+
callback: (prevDeps: any[]) => void,
6+
deps: any[],
7+
) {
8+
const prevRef = React.useRef(deps);
9+
React.useEffect(() => {
10+
if (
11+
deps.length !== prevRef.current.length ||
12+
deps.some((dep, index) => dep !== prevRef.current[index])
13+
) {
14+
callback(prevRef.current);
15+
}
16+
prevRef.current = deps;
17+
});
18+
}

0 commit comments

Comments
 (0)