Skip to content

Commit af6b896

Browse files
committed
Fix array setValues bug
1 parent caac7fe commit af6b896

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

src/form.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ function memberCopy<T>(value: T): T {
3030
} else if (typeof value === "object") {
3131
return { ...value };
3232
} else {
33-
throw new Error("Can only memberCopy() arrays and objects.");
33+
throw new Error(`Can only memberCopy() arrays and objects, got '${String(value)}'. Probably due to invalid useForm() value.`);
3434
}
3535
}
3636

src/hooks.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -166,17 +166,17 @@ export function useArrayField<
166166
}, []);
167167

168168
const append = useCallback((value: NonNullable<T[K]>[any]) => {
169-
form.setValues([...(form.values as any), value] as any);
169+
form.setValues([...(form.values as any), value] as any, true, false);
170170
}, []);
171171

172172
const remove = useCallback((index: number) => {
173173
let newValues = [...(form.values as any)];
174174
newValues.splice(index, 1);
175-
form.setValues(newValues as any);
175+
form.setValues(newValues as any, true, false);
176176
}, []);
177177

178178
const clear = useCallback(() => {
179-
form.setValues([] as any);
179+
form.setValues([] as any, true, false);
180180
}, []);
181181

182182
const move = useCallback((from: number, to: number) => {
@@ -188,7 +188,7 @@ export function useArrayField<
188188
newArr[k] = newArr[k + increment];
189189
}
190190
newArr[to] = target;
191-
form.setValues(newArr as any);
191+
form.setValues(newArr as any, true, false);
192192
}, []);
193193

194194
const swap = useCallback((index: number, newIndex: number) => {
@@ -197,7 +197,7 @@ export function useArrayField<
197197
}
198198
let values = [...(form.values as any)];
199199
[values[index], values[newIndex]] = [values[newIndex], values[index]];
200-
form.setValues(values as any);
200+
form.setValues(values as any, true, false);
201201
}, []);
202202

203203
return {

0 commit comments

Comments
 (0)