Skip to content

Commit ff859d3

Browse files
committed
fix: change
1 parent 38c629a commit ff859d3

File tree

2 files changed

+21
-7
lines changed

2 files changed

+21
-7
lines changed

src/Field.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -620,13 +620,13 @@ class Field extends React.Component<InternalFieldProps, FieldState> implements F
620620
if (normalize) {
621621
newValue = normalize(newValue, value, getFieldsValue(true));
622622
}
623-
624-
dispatch({
625-
type: 'updateValue',
626-
namePath,
627-
value: newValue,
628-
});
629-
623+
if (!isEqual(newValue, value)) {
624+
dispatch({
625+
type: 'updateValue',
626+
namePath,
627+
value: newValue,
628+
});
629+
}
630630
if (originTriggerFunc) {
631631
originTriggerFunc(...args);
632632
}

tests/control.test.tsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,18 @@ describe('Form.Control', () => {
4040
await changeValue(getInput(container), ['bamboo', '']);
4141
matchError(container, "'test' is required");
4242
});
43+
44+
it('value no change', async () => {
45+
const fn = jest.fn();
46+
const { container } = render(
47+
<Form onFieldsChange={fn}>
48+
<InfoField name="test" normalize={value => value?.replace(/\D/g, '') || undefined} />
49+
</Form>,
50+
);
51+
52+
await changeValue(getInput(container), 'bamboo');
53+
expect(fn).toHaveBeenCalledTimes(0);
54+
await changeValue(getInput(container), '1');
55+
expect(fn).toHaveBeenCalledTimes(1);
56+
});
4357
});

0 commit comments

Comments
 (0)