diff --git a/.prettierrc b/.prettierrc index 4776b274..35f47aea 100755 --- a/.prettierrc +++ b/.prettierrc @@ -1,4 +1,5 @@ { + "root":true, "bracketSpacing": true, "printWidth": 120, "proseWrap": "never", diff --git a/src/image-viewer.component.tsx b/src/image-viewer.component.tsx index 848eb7b1..aa37524c 100644 --- a/src/image-viewer.component.tsx +++ b/src/image-viewer.component.tsx @@ -73,6 +73,9 @@ export default class ImageViewer extends React.Component { useNativeDriver: !!this.props.useNativeDriver }).start(); } + if (prevProps.imageUrls?.length !== this.props.imageUrls?.length) { + this.init(this.props); + } } /** @@ -86,13 +89,14 @@ export default class ImageViewer extends React.Component { } // 给 imageSizes 塞入空数组 - const imageSizes: IImageSize[] = []; - nextProps.imageUrls.forEach(imageUrl => { - imageSizes.push({ - width: imageUrl.width || 0, - height: imageUrl.height || 0, - status: 'loading' - }); + const imageSizes = this.state.imageSizes ?? []; + nextProps.imageUrls.forEach((imageUrl, i) => { + let nowImageSize = imageSizes[i]; + imageSizes[i] = { + width: nowImageSize?.width ?? imageUrl.width ?? 0, + height: nowImageSize?.height ?? imageUrl.height ?? 0, + status: nowImageSize?.status ?? 'loading' + }; }); this.setState(