diff --git a/packages/contact-card/test/__snapshots__/index.spec.js.snap b/packages/contact-card/test/__snapshots__/index.spec.js.snap index dba0ecbae..bcae6ce42 100644 --- a/packages/contact-card/test/__snapshots__/index.spec.js.snap +++ b/packages/contact-card/test/__snapshots__/index.spec.js.snap @@ -2,6 +2,16 @@ exports[`ContactList render 1`] = `
-
+
+
+
+
+
+
test,123123213
+
+
+ +
+
`; diff --git a/packages/contact-card/test/index.spec.js b/packages/contact-card/test/index.spec.js index 158e249ef..81802cd43 100644 --- a/packages/contact-card/test/index.spec.js +++ b/packages/contact-card/test/index.spec.js @@ -43,9 +43,31 @@ describe('ContactCard', () => { describe('ContactList', () => { test('render', () => { - const wrapper = mount(ContactList); + const wrapper = mount(ContactList, { + propsData: { + list: [contactInfo] + } + }); expect(wrapper).toMatchSnapshot(); }); + + test('select event', () => { + const onSelect = jest.fn(); + const wrapper = mount(ContactList, { + propsData: { + list: [contactInfo] + }, + context: { + on: { + select: onSelect + } + } + }); + + wrapper.find('.van-radio__icon').trigger('click'); + + expect(onSelect).toHaveBeenCalled(); + }); }); describe('ContactEdit', () => { diff --git a/packages/contact-list/index.tsx b/packages/contact-list/index.tsx index 5f57e71cd..cae9b2e73 100644 --- a/packages/contact-list/index.tsx +++ b/packages/contact-list/index.tsx @@ -30,35 +30,39 @@ function ContactList( slots: DefaultSlots, ctx: RenderContext ) { - const List = props.list.map((item, index) => ( - ( - -
{`${item.name},${item.tel}`}
-
- ), - 'right-icon': () => ( - { - event.stopPropagation(); - emit(ctx, 'edit', item, index); - }} - /> - ) - }} - onClick={() => { - emit(ctx, 'input', item.id); - emit(ctx, 'select', item, index); - }} - /> - )); + const List = props.list.map((item, index) => { + const onClick = () => { + emit(ctx, 'input', item.id); + emit(ctx, 'select', item, index); + }; + + return ( + ( + +
{`${item.name},${item.tel}`}
+
+ ), + 'right-icon': () => ( + { + event.stopPropagation(); + emit(ctx, 'edit', item, index); + }} + /> + ) + }} + onClick={onClick} + /> + ); + }); return (
diff --git a/packages/mixins/checkbox.js b/packages/mixins/checkbox.js index d2e136a31..6d8ea11a6 100644 --- a/packages/mixins/checkbox.js +++ b/packages/mixins/checkbox.js @@ -60,16 +60,13 @@ export const CheckboxMixin = (parent, bem) => ({
{ + event.stopPropagation(); this.$emit('click', event); }} >
{ - event.stopPropagation(); - this.onClickIcon(); - this.$emit('click', event); - }} + onClick={this.onClickIcon} > {CheckIcon}