diff --git a/src/Slider.tsx b/src/Slider.tsx index c7d5ea0e9..8c1033f45 100644 --- a/src/Slider.tsx +++ b/src/Slider.tsx @@ -298,6 +298,7 @@ const Slider = React.forwardRef((props: SliderProps, ref: React.Ref) cloneNextValues.push(newValue); } + onBeforeChange?.(getTriggerValue(cloneNextValues)); triggerChange(cloneNextValues); onAfterChange?.(getTriggerValue(cloneNextValues)); } diff --git a/tests/Slider.test.js b/tests/Slider.test.js index b952fb585..57f68d2b5 100644 --- a/tests/Slider.test.js +++ b/tests/Slider.test.js @@ -537,6 +537,26 @@ describe('Slider', () => { expect(onChange).toHaveBeenCalledWith([20, 20]); }); + + it('should call onBeforeChange, onChange, and onAfterChange', () => { + const onBeforeChange = jest.fn(); + const onChange = jest.fn(); + const onAfterChange = jest.fn(); + const { container } = render( + , + ); + fireEvent.mouseDown(container.querySelector('.rc-slider'), { + clientX: 20, + }); + + expect(onBeforeChange).toHaveBeenCalledWith(20); + expect(onChange).toHaveBeenCalledWith(20); + expect(onAfterChange).toHaveBeenCalledWith(20); + }); }); it('autoFocus', () => {