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

    여러 개의 GestureViewer 인스턴스를 효율적으로 관리하고 싶은 경우 id 값을 적용하면 여러 개의 GestureViewer를 사용할 수 있습니다.

    GestureViewer는 컴포넌트가 언마운트되면 메모리에서 자동으로 인스턴스가 제거되어 메모리 관리를 수동으로 할 필요가 없습니다.

    Note

    id 기본값은 default입니다.

    import {
      GestureViewer,
      GestureTrigger,
      useGestureViewerController,
      useGestureViewerEvent,
      useGestureViewerState,
    } from 'react-native-gesture-image-viewer';
    
    const firstViewerId = 'firstViewerId';
    const secondViewerId = 'secondViewerId';
    
    function App() {
      const { goToIndex: goToFirstIndex } = useGestureViewerController(firstViewerId);
      const { goToIndex: goToSecondIndex } = useGestureViewerController(secondViewerId);
    
      const { currentIndex: firstCurrentIndex } = useGestureViewerState(firstViewerId);
      const { currentIndex: secondCurrentIndex } = useGestureViewerState(secondViewerId);
    
      useGestureViewerEvent(firstViewerId, 'zoomChange', (data) => {
        console.log(`Gallery zoom: ${data.scale}x`);
      });
    
      useGestureViewerEvent(secondViewerId, 'zoomChange', (data) => {
        console.log(`Gallery zoom: ${data.scale}x`);
      });
    
      return (
        <View>
          <GestureTrigger id={firstViewerId}>
            <Pressable>
              <Image source={{ uri }} />
            </Pressable>
          </GestureTrigger>
          <GestureViewer id={firstViewerId} data={images} renderItem={renderImage} />
          <Button title="Go to index 2 (first)" onPress={() => goToFirstIndex(2)} />
          <GestureTrigger id={secondViewerId}>
            <Pressable>
              <Image source={{ uri }} />
            </Pressable>
          </GestureTrigger>
          <GestureViewer id={secondViewerId} data={images} renderItem={renderImage} />
          <Button title="Go to index 0 (second)" onPress={() => goToSecondIndex(0)} />
        </View>
      );
    }