Skip to content

Commit 44829ee

Browse files
authored
fix: 修复 ImagePreview 无法动态设置 startPosition 的问题 (#562)
1 parent 373c7c2 commit 44829ee

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

packages/react-vant/src/components/image-preview/ImagePreview.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ const ImagePreview = React.forwardRef<ImagePreviewRef, ImagePreviewProps>(
3737
{props.images && (
3838
<Slides
3939
ref={slidesRef}
40-
defaultIndex={active}
40+
defaultIndex={props.startPosition}
4141
onIndexChange={onSwipeChange}
4242
images={props.images}
4343
onTap={() => {

packages/react-vant/src/components/image-preview/slides.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { Slide } from './slide'
55
import { bound } from '../utils/bound'
66
import { createNamespace, unitToPx } from '../utils'
77
import clsx from 'clsx'
8+
import { useUpdateEffect } from '../hooks'
89

910
export type SlidesType = {
1011
images: string[]
@@ -29,6 +30,10 @@ export const Slides = forwardRef<SlidesRef, SlidesType>((props, ref) => {
2930

3031
const count = props.images.length
3132

33+
useUpdateEffect(() => {
34+
swipeTo(props.defaultIndex, true)
35+
}, [props.defaultIndex])
36+
3237
function swipeTo(index: number, immediate = false) {
3338
const i = bound(index, 0, count - 1)
3439
props.onIndexChange?.(i)

0 commit comments

Comments
 (0)