sumini dev

posts

RN Gesture Handler : Handler의 상태 (3)

profile-image

Choi su min

종류

UNDETERMINED

초기값이다. gesture 인식을 대기하는 중인 상태다.

FAILED

Handler가 touch를 인식했으나, 활성화(activated)되지 못한 상태다. 이후 UNDETERMINED로 전환된다.

BEGAN

Handler가 touch를 인식중이며, 아직 FAIL 또는 ACTIVE 상태가 되기에 데이터가 부족한 상태다.

CANCELLED

외부 signal로 인해 continuous gesture가 취소된 상태다. Gesture recognizer는 UNDERTERMINED로 초기화된다.

ACTIVE

Gesture를 인식한 상태다. gesture가 끝나거나 취소될 때까지 유지된다. 일반적으로 END 상태로 전환되지만, 취소된 경우 CANCELLED 상태로 전환된다.

END

Gesture 인식을 정상적으로 종료한 상태다. 이후 UNDETERMINED로 전환된다.

State 흐름

  1. 일반적인 상황

    UNDETERMINED -> BEGAN ------> ACTIVE ------> END -> UNDETERMINED

  2. 취소됨

    UNDETERMINED -> BEGAN ------> FAILED -> UNDETERMINED

  3. 실패

    UNDETERMINED -> BEGAN ------> ACTIVE ------> CANCELLED -> UNDETERMINED

State에 접근하기

onHandlerStateChange와 event의 state 속성을 통해 state에 접근할 수 있다.

import { State, LongPressGestureHandler } from 'react-native-gesture-handler';

class Demo extends Component {
  _handleStateChange = ({ nativeEvent }) => {
    if (nativeEvent.state === State.ACTIVE) {
      Alert.alert('Longpress');
    }
  };
  render() {
    return (
      <LongPressGestureHandler onHandlerStateChange={this._handleStateChange}>
        <Text style={styles.buttonText}>Longpress me</Text>
      </LongPressGestureHandler>
    );
  }
}

REACT-NATIVE10개 더보기

모든 글 보기

이전 글

RN Gesture Handler : Gesture Handler란? (2)

다음 글

Next.js dev server 멈추는 현상 해결하는 법

profile-image

Choi su min

Sogang Univ.

AWESOME.DEV Lead

Anyang, Gyeong-gi, Republic of Korea

github-iconmail-iconrss-icon