UNPKG

react-hook-merge-state

Version:

在`useState`的基础上,对同一个状态的默认值、受控值进行对比监听

32 lines (31 loc) 1.24 kB
export type UseMergeStateOptions<OriginType, ResultType = OriginType, ExtraValues extends any[] = any[]> = { /** * 默认状态值 */ defaultValue?: OriginType | (() => OriginType); /** * 受控状态值 */ value?: OriginType; /** * 受控状态值改变回调 */ onChange?: (value: OriginType, prevValue?: OriginType, ...rest: ExtraValues) => void; /** * 将结果值类型转化为原始值类型 */ transformToOrigin?: (value: ResultType) => OriginType; /** * 将原始值类型转化为结果值类型 */ transformToResult?: (value: OriginType) => ResultType; /** * 自定义值比较方法 * @description 默认是执行深比较来决定两者的值是否相等,支持有些场景下传递自定义比较直方法来比较是否值变化 */ compare?: (oldValue: any, newValue: any) => boolean; }; /** * 合并状态值 */ export declare function useMergeState<OriginType, ResultType = OriginType, ExtraValues extends any[] = any[]>(defaultStateValue?: OriginType | (() => OriginType), option?: UseMergeStateOptions<OriginType, ResultType, ExtraValues>): [ResultType, (value: ResultType, ...rest: ExtraValues) => void];