diff --git a/src/packages/__VUE/swiper/__tests__/index.spec.ts b/src/packages/__VUE/swiper/__tests__/index.spec.ts index f80f140341..0419a7d46c 100644 --- a/src/packages/__VUE/swiper/__tests__/index.spec.ts +++ b/src/packages/__VUE/swiper/__tests__/index.spec.ts @@ -342,3 +342,17 @@ test('should swiper to swiper after calling to method', async () => { await sleep(100); expect(wrapper.vm.page).toBe(1); }); + +test('should change props height', async () => { + const wrapper = mount(Swiper, { + props: { + height: 200 + } + }); + wrapper.setProps({ + height: 300 + }); + await nextTick(); + await sleep(100); + expect(wrapper.vm.state.height).toBe(300); +}); diff --git a/src/packages/__VUE/swiper/index.taro.vue b/src/packages/__VUE/swiper/index.taro.vue index cb063edc05..4f456a29ea 100644 --- a/src/packages/__VUE/swiper/index.taro.vue +++ b/src/packages/__VUE/swiper/index.taro.vue @@ -423,6 +423,18 @@ export default create({ watch( () => props.initPage, + () => { + Taro.nextTick(() => { + init(); + }); + eventCenter.once((getCurrentInstance() as any).router.onReady, () => { + init(); + }); + } + ); + + watch( + () => props.height, (val) => { Taro.nextTick(() => { init(+val); diff --git a/src/packages/__VUE/swiper/index.vue b/src/packages/__VUE/swiper/index.vue index 415a196383..2283d11f1f 100644 --- a/src/packages/__VUE/swiper/index.vue +++ b/src/packages/__VUE/swiper/index.vue @@ -424,6 +424,15 @@ export default create({ } ); + watch( + () => props.height, + () => { + nextTick(() => { + init(); + }); + } + ); + watch( () => state.children.length, () => {