UNPKG

@ohkit/react-helper

Version:

some utils and hooks for react

23 lines (22 loc) 1.25 kB
export interface ISyncPropsStateOptions<T, K extends keyof T, Val extends T[K] = T[K]> { defaultValue?: Val; onChange?: (val: Val extends undefined ? T[K] : Required<T>[K]) => void; /** * 自定义比较函数 * @param pre 前一个值 * @param cur 当前值 */ compare?: (pre: T[K], cur: T[K]) => boolean; } /** * 使用组件的 props 属性同步组件状态 * * @description T[K] 不能是个函数类型,在 React 中,useState 通常用于管理非函数类型的状态(如数字、字符串、对象等) * 如果你需要管理一个函数类型的状态,直接使用 useState 可能会导致一些问题,因为 React 会将函数视为惰性初始化的函数,而不是状态值本身。 * * @param key 要同步的 props 的键名 * @param props 组件的 props 对象 * @param options 可选配置参数 * @returns 返回内部状态和更新状态的函数 */ export declare function useSyncPropsState<T extends object, K extends keyof T, Val extends T[K] = T[K]>(props: T, key: K, options?: ISyncPropsStateOptions<T, K, Val>): [Val extends undefined ? T[K] : Required<T>[K], (val: T[K] extends undefined ? T[K] : Required<T>[K], emitChange?: boolean) => void];