For AI agents: the complete documentation index is available at https://react-native-gesture-image-viewer.pages.dev/1.x/ko/llms.txt, the full documentation bundle is available at https://react-native-gesture-image-viewer.pages.dev/1.x/ko/llms-full.txt, and this page is available as Markdown at https://react-native-gesture-image-viewer.pages.dev/1.x/ko/guide/usage/multi-instance-management.md.
v3 정식 출시. 변경 사항 보기
  • 한국어
  • 1.x
  • 다중 인스턴스 관리

    여러 개의 GestureViewer 인스턴스를 효율적으로 관리하고 싶은 경우 id 값을 적용하면 여러 개의 GestureViewer를 사용할 수 있습니다.
    GestureViewer는 컴포넌트가 언마운트되면 메모리에서 자동으로 인스턴스가 제거되어 메모리 관리를 수동으로 할 필요가 없습니다.

    Note

    id 기본값은 default입니다.

    import {
      GestureViewer,
      GestureTrigger,
      useGestureViewerController,
      useGestureViewerEvent,
    } from 'react-native-gesture-image-viewer';
    
    const firstViewerId = 'firstViewerId';
    const secondViewerId = 'secondViewerId';
    
    function App() {
      const { currentIndex: firstCurrentIndex, totalCount: firstTotalCount } =
        useGestureViewerController(firstViewerId);
      const { currentIndex: secondCurrentIndex, totalCount: secondTotalCount } =
        useGestureViewerController(secondViewerId);
    
      useGestureViewerEvent(firstViewerId, 'zoomChange', (data) => {
        console.log(`갤러리 줌: ${data.scale}배`);
      });
    
      useGestureViewerEvent(secondViewerId, 'zoomChange', (data) => {
        console.log(`갤러리 줌: ${data.scale}배`);
      });
    
      return (
        <View>
          <GestureTrigger id={firstViewerId}>
            <Pressable>
              <Image source={{ uri }} />
            </Pressable>
          </GestureTrigger>
          <GestureViewer id={firstViewerId} data={images} renderItem={renderImage} />
          <GestureTrigger id={secondViewerId}>
            <Pressable>
              <Image source={{ uri }} />
            </Pressable>
          </GestureTrigger>
          <GestureViewer id={secondViewerId} data={images} renderItem={renderImage} />
        </View>
      );
    }