React-Native触摸组件PanResponder的使用

已经找到详细文档了:

http://reactnative.cn/docs/0.26/panresponder.html

DEMO:

import React,{ Component } from 'react';
import {
  Alert,StyleSheet,Text,View,Navigator,PanResponder
} from 'react-native';

export default class Login extends Component{
  constructor(props){
    super(props);
    this.state = {
     eventName:'',pos: '',};
    this.myPanResponder={}
  }

  componentwillMount() {
      this.myPanResponder = PanResponder.create({
      //要求成为响应者:
      onStartShouldSetPanResponder: (evt,gestureState) => true,onStartShouldSetPanResponderCapture: (evt,onMoveShouldSetPanResponder: (evt,onMoveShouldSetPanResponderCapture: (evt,onPanResponderTerminationRequest: (evt,//响应对应事件后的处理:
      onPanResponderGrant: (evt,gestureState) => {
        this.state.eventName='触摸开始';
        this.forceUpdate();
      },onPanResponderMove: (evt,gestureState) => {
        var _pos = 'x:' + gestureState.moveX + ',y:' + gestureState.moveY;
        this.setState( {eventName:'移动',pos : _pos} );
      },onPanResponderRelease: (evt,gestureState) => {
        this.setState( {eventName:'抬手'} );
      },onPanResponderTerminate: (evt,gestureState) => {
        this.setState( {eventName:'另一个组件已经成为了新的响应者'} )
      },});
  }

  render(){
    return (
      <View style={styles.container} {...this.myPanResponder.panHandlers}>
        <Text>eventName:{this.state.eventName}|{this.state.pos}</Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container:{
    backgroundColor:"#fff",flex:1
  }
});

相关文章

一、前言 在组件方面react和Vue一样的,核心思想玩的就是组件...
前言: 前段时间学习完react后,刚好就接到公司一个react项目...
前言: 最近收到组长通知我们项目组后面新开的项目准备统一技...
react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...