diff --git a/packages/vant/src/swipe/README.md b/packages/vant/src/swipe/README.md index ec278cd25..8228791f9 100644 --- a/packages/vant/src/swipe/README.md +++ b/packages/vant/src/swipe/README.md @@ -161,8 +161,8 @@ export default { | Event | Description | Arguments | | --- | --- | --- | | change | Emitted when current swipe changed | _index: number_ | -| drag-start `v4.0.9` | Emitted when user starts dragging the swipe | - | -| drag-end `v4.0.9` | Emitted when user ends dragging the swipe | - | +| drag-start `v4.0.9` | Emitted when user starts dragging the swipe | _{ index: number }_ | +| drag-end `v4.0.9` | Emitted when user ends dragging the swipe | _{ index: number }_ | ### SwipeItem Events diff --git a/packages/vant/src/swipe/README.zh-CN.md b/packages/vant/src/swipe/README.zh-CN.md index ea238b5d0..d7aeb2070 100644 --- a/packages/vant/src/swipe/README.zh-CN.md +++ b/packages/vant/src/swipe/README.zh-CN.md @@ -166,11 +166,11 @@ export default { ### Swipe Events -| 事件名 | 说明 | 回调参数 | -| ------------------- | ---------------------------- | --------------- | -| change | 每一页轮播结束后触发 | _index: number_ | -| drag-start `v4.0.9` | 当用户开始拖动轮播组件时触发 | - | -| drag-end `v4.0.9` | 当用户结束拖动轮播组件时触发 | - | +| 事件名 | 说明 | 回调参数 | +| ------------------- | ---------------------------- | ------------------- | +| change | 每一页轮播结束后触发 | _index: number_ | +| drag-start `v4.0.9` | 当用户开始拖动轮播组件时触发 | _{ index: number }_ | +| drag-end `v4.0.9` | 当用户结束拖动轮播组件时触发 | _{ index: number }_ | ### SwipeItem Events diff --git a/packages/vant/src/swipe/Swipe.tsx b/packages/vant/src/swipe/Swipe.tsx index d1765fd30..d67d96cfc 100644 --- a/packages/vant/src/swipe/Swipe.tsx +++ b/packages/vant/src/swipe/Swipe.tsx @@ -333,7 +333,7 @@ export default defineComponent({ move({ offset: delta.value }); if (!dragging) { - emit('dragStart'); + emit('dragStart', { index: activeIndicator.value }); dragging = true; } } @@ -377,7 +377,7 @@ export default defineComponent({ dragging = false; state.swiping = false; - emit('dragEnd'); + emit('dragEnd', { index: activeIndicator.value }); autoplay(); }; diff --git a/packages/vant/src/swipe/test/index.spec.jsx b/packages/vant/src/swipe/test/index.spec.jsx index 7a3901690..70dcbaf30 100644 --- a/packages/vant/src/swipe/test/index.spec.jsx +++ b/packages/vant/src/swipe/test/index.spec.jsx @@ -350,9 +350,13 @@ test('should emit drag-start and drag-end events correctly', async () => { await triggerDrag(track, 100, 0); expect(dragStart).toHaveBeenCalledTimes(1); + expect(dragStart).toHaveBeenCalledWith({ index: 0 }); expect(dragEnd).toHaveBeenCalledTimes(1); + expect(dragEnd).toHaveBeenCalledWith({ index: 1 }); await triggerDrag(track, 100, 0); expect(dragStart).toHaveBeenCalledTimes(2); + expect(dragStart).toHaveBeenCalledWith({ index: 1 }); expect(dragEnd).toHaveBeenCalledTimes(2); + expect(dragEnd).toHaveBeenCalledWith({ index: 0 }); });