diff --git a/src/tab/index.js b/src/tab/index.js index 45856531d..2e6a738c6 100644 --- a/src/tab/index.js +++ b/src/tab/index.js @@ -45,7 +45,9 @@ export default createComponent({ inited(val) { if (this.parent.lazyRender && val) { - this.parent.$emit('rendered', this.computedName, this.title); + this.$nextTick(() => { + this.parent.$emit('rendered', this.computedName, this.title); + }); } } }, diff --git a/src/tab/test/__snapshots__/index.spec.js.snap b/src/tab/test/__snapshots__/index.spec.js.snap index 85aa995d3..8f9fbc505 100644 --- a/src/tab/test/__snapshots__/index.spec.js.snap +++ b/src/tab/test/__snapshots__/index.spec.js.snap @@ -223,6 +223,8 @@ exports[`render nav-left & nav-right slot 1`] = ` `; +exports[`rendered event 1`] = `
Text
`; + exports[`scrollspy 1`] = `
diff --git a/src/tab/test/index.spec.js b/src/tab/test/index.spec.js index 3af15024d..52b84a628 100644 --- a/src/tab/test/index.spec.js +++ b/src/tab/test/index.spec.js @@ -294,7 +294,7 @@ test('scrollspy', async () => { expect(onChange).toHaveBeenCalledWith('c', 'title3'); }); -test('rendered event', () => { +test('rendered event', async () => { const onRendered = jest.fn(); const wrapper = mount({ @@ -314,15 +314,19 @@ test('rendered event', () => { } }); + await later(); expect(onRendered).toHaveBeenCalledWith('a', 'title1'); + expect(wrapper.find('.van-tab__pane')).toMatchSnapshot(); const tabs = wrapper.findAll('.van-tab'); tabs.at(1).trigger('click'); tabs.at(0).trigger('click'); + + await later(); expect(onRendered).toHaveBeenCalledTimes(2); }); -test('should not trigger rendered event when disable lazy-render', () => { +test('should not trigger rendered event when disable lazy-render', async () => { const onRendered = jest.fn(); mount({ @@ -337,5 +341,6 @@ test('should not trigger rendered event when disable lazy-render', () => { } }); + await later(); expect(onRendered).toHaveBeenCalledTimes(0); });