diff --git a/src/form.ts b/src/form.ts index 76c5f52bb62f6715597758a2d0c169256afed457..5807e8311f70d82f50abee9fc9c4a447f6d857a5 100644 --- a/src/form.ts +++ b/src/form.ts @@ -293,9 +293,11 @@ export function useCopy<T>(state: MaybeRefOrGetter<T>, options: UseCopyOptions<T const _save = options?.save const value = (shallow ? shallowRef() : ref()) as Ref<T> - watchEffect(() => { + watchEffect(reset) + + function reset() { value.value = _clone(toValue(state)) - }) + } function triggerSave() { const _value = value.value @@ -308,7 +310,7 @@ export function useCopy<T>(state: MaybeRefOrGetter<T>, options: UseCopyOptions<T watchDebounced(value, triggerSave, { deep: true, debounce }) } - return extendRef(value, { triggerSave }, { enumerable: true }) + return extendRef(value, { triggerSave, reset }, { enumerable: true }) } export function useAPIObjectFieldCopy<