diff --git a/src/hooks/useLayoutEffect.ts b/src/hooks/useLayoutEffect.ts new file mode 100644 index 00000000..d1731cd1 --- /dev/null +++ b/src/hooks/useLayoutEffect.ts @@ -0,0 +1,4 @@ +import * as React from 'react'; +import canUseDom from 'rc-util/lib/Dom/canUseDom'; + +export const useLayoutEffect = canUseDom() ? React.useLayoutEffect : React.useEffect; diff --git a/src/hooks/useUpdateEffect.ts b/src/hooks/useUpdateEffect.ts index a66e7cdb..6ba60d74 100644 --- a/src/hooks/useUpdateEffect.ts +++ b/src/hooks/useUpdateEffect.ts @@ -1,4 +1,5 @@ import * as React from 'react'; +import { useLayoutEffect } from './useLayoutEffect'; /** * Work as `componentDidUpdate` @@ -6,7 +7,7 @@ import * as React from 'react'; export default function useUpdateEffect(callback: () => void | (() => void), condition: any[]) { const initRef = React.useRef(false); - React.useLayoutEffect(() => { + useLayoutEffect(() => { if (!initRef.current) { initRef.current = true; return undefined;