Skip to content

usePreservedCallback ​

usePreservedCallback 是一个维持回调函数稳定引用、同时确保它始终能访问最新状态或 props 的 React Hook。这可以避免不必要的重复渲染,并在将回调传给子组件或处理事件监听器时简化依赖管理。

接口 ​

ts
function usePreservedCallback<
  Arguments extends any[] = any[],
  ReturnValue = unknown,
>(callback: (...args: any[]) => any): (...args: any[]) => any;

参数 ​

  • callbackrequired · (...args: any[]) => any

    要保留的函数。即使在组件重复渲染时,它也始终引用最新的状态或 props。

返回值 ​

  • (...args: any[]) => any

    一个与输入回调具有相同签名的函数。返回的函数维持稳定引用,同时访问最新的状态或 props。

示例 ​

tsx
import { usePreservedCallback } from 'react-simplikit';
import { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);

  const handleClick = usePreservedCallback(() => {
    console.log(`Current count: ${count}`);
    setCount(prev => prev + 1);
  });

  return <button onClick={handleClick}>Click me</button>;
}

基于 MIT 许可证发布。