diff --git a/src/OptionList/Column.tsx b/src/OptionList/Column.tsx index cb94891b..b65d8a0c 100644 --- a/src/OptionList/Column.tsx +++ b/src/OptionList/Column.tsx @@ -113,7 +113,8 @@ export default function Column({ checked={checked} halfChecked={halfCheckedSet.has(value)} disabled={disabled} - onClick={() => { + onClick={(e: React.MouseEvent) => { + e.stopPropagation(); triggerSelect(); }} /> diff --git a/tests/checkable.spec.tsx b/tests/checkable.spec.tsx index dc2750ac..f2397089 100644 --- a/tests/checkable.spec.tsx +++ b/tests/checkable.spec.tsx @@ -76,4 +76,17 @@ describe('Cascader.Checkable', () => { ], ); }); + it('click checkobx invoke one onChange', () => { + const onChange = jest.fn(); + const wrapper = mount(); + + expect(wrapper.exists('.rc-cascader-checkbox')).toBeTruthy(); + expect(wrapper.exists('.rc-cascader-checkbox-checked')).toBeFalsy(); + expect(wrapper.exists('.rc-cascader-checkbox-indeterminate')).toBeFalsy(); + + // Check checkbox + wrapper.find('.rc-cascader-checkbox').first().simulate('click'); + expect(wrapper.exists('.rc-cascader-checkbox-checked')).toBeTruthy(); + expect(onChange).toHaveBeenCalledTimes(1); + }); });