From d1a8adab20e579deeb1a10e31e6a7c31f35c3a1f Mon Sep 17 00:00:00 2001 From: neverland Date: Sat, 30 Nov 2019 08:22:17 +0800 Subject: [PATCH] fix(TreeSelect): should sync value before trigger click-item event (#5153) --- src/tree-select/index.tsx | 6 ++---- src/tree-select/test/index.spec.js | 34 ++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/src/tree-select/index.tsx b/src/tree-select/index.tsx index 73dbde230..e0584b175 100644 --- a/src/tree-select/index.tsx +++ b/src/tree-select/index.tsx @@ -97,9 +97,8 @@ function TreeSelect( } } - emit(ctx, 'click-item', item); emit(ctx, 'update:active-id', newActiveId); - + emit(ctx, 'click-item', item); // compatible for old usage, should be removed in next major version emit(ctx, 'itemclick', item); } @@ -119,9 +118,8 @@ function TreeSelect( class={bem('nav')} activeKey={mainActiveIndex} onChange={(index: number) => { - emit(ctx, 'click-nav', index); emit(ctx, 'update:main-active-index', index); - + emit(ctx, 'click-nav', index); // compatible for old usage, should be removed in next major version emit(ctx, 'navclick', index); }} diff --git a/src/tree-select/test/index.spec.js b/src/tree-select/test/index.spec.js index 47b25fc7d..09eb0c3a7 100644 --- a/src/tree-select/test/index.spec.js +++ b/src/tree-select/test/index.spec.js @@ -295,3 +295,37 @@ test('className of nav', () => { const items = wrapper.findAll('.van-tree-select__nav-item'); expect(items.at(0).element.classList.contains('my-class')).toBeTruthy(); }); + +test('should sync value before trigger click-item event', done => { + const wrapper = mount({ + template: ` + + `, + data() { + return { + activeId: mockItem.id, + mainActiveIndex: 0, + items: [ + { + text: 'group1', + children: [mockItem, mockItem2] + } + ] + }; + }, + methods: { + onClickItem() { + expect(wrapper.vm.activeId).toEqual(mockItem2.id); + done(); + } + } + }); + + const items = wrapper.findAll('.van-tree-select__item'); + items.at(1).trigger('click'); +});