From d7152ff049201f683b44d109aa3726a7e3cea93a Mon Sep 17 00:00:00 2001 From: zkwolf Date: Mon, 30 Nov 2020 17:50:01 +0800 Subject: [PATCH 1/3] fix: checkbox can't trigger change --- components/vc-checkbox/src/Checkbox.jsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/components/vc-checkbox/src/Checkbox.jsx b/components/vc-checkbox/src/Checkbox.jsx index adb6926515..15eb26be87 100644 --- a/components/vc-checkbox/src/Checkbox.jsx +++ b/components/vc-checkbox/src/Checkbox.jsx @@ -92,6 +92,10 @@ export default { nativeEvent: e, }); this.eventShiftKey = false; + // fix https://github.com/vueComponent/ant-design-vue/issues/3047 + if ('checked' in props) { + this.$refs.input.checked = !e.target.checked; + } }, onClick(e) { this.__emit('click', e); From 23e4e936798358194c93d885228b9fe43a9560de Mon Sep 17 00:00:00 2001 From: zkwolf Date: Tue, 1 Dec 2020 10:06:58 +0800 Subject: [PATCH 2/3] test: add unit test --- components/radio/__tests__/group.test.js | 37 ++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/components/radio/__tests__/group.test.js b/components/radio/__tests__/group.test.js index fa49106268..5df6acb05c 100644 --- a/components/radio/__tests__/group.test.js +++ b/components/radio/__tests__/group.test.js @@ -230,4 +230,41 @@ describe('Radio', () => { }); expect(wrapper.html()).toMatchSnapshot(); }); + + it('when onChange do not change the value, change event can be also triggered.', async () => { + const onChange = jest.fn(); + const onChangeRadioGroup = () => { + onChange(); + wrapper.setProps({ value: 'A' }); + }; + + const wrapper = mount( + { + props: ['value'], + render() { + const value = this.value || 'A'; + return ( + + A + B + C + + ); + }, + }, + { sync: false }, + ); + + const radios = wrapper.findAll('input'); + + await asyncExpect(() => { + radios.at(1).trigger('click'); + expect(onChange.mock.calls.length).toBe(1); + }); + + await asyncExpect(() => { + radios.at(1).trigger('click'); + expect(onChange.mock.calls.length).toBe(2); + }); + }); }); From 864c6b4bc54abf2a7753881668fe7b6dbf03bc62 Mon Sep 17 00:00:00 2001 From: zkwolf Date: Fri, 4 Dec 2020 09:34:45 +0800 Subject: [PATCH 3/3] chore: update vc-checkbox --- components/vc-checkbox/src/Checkbox.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/vc-checkbox/src/Checkbox.jsx b/components/vc-checkbox/src/Checkbox.jsx index 15eb26be87..475871373b 100644 --- a/components/vc-checkbox/src/Checkbox.jsx +++ b/components/vc-checkbox/src/Checkbox.jsx @@ -94,7 +94,7 @@ export default { this.eventShiftKey = false; // fix https://github.com/vueComponent/ant-design-vue/issues/3047 if ('checked' in props) { - this.$refs.input.checked = !e.target.checked; + this.$refs.input.checked = props.checked; } }, onClick(e) {