PanResponder React原生参数

时间:2017-10-19 09:20:04

标签: javascript reactjs react-native

我遇到panResponder问题 我的代码:

componentWillMount() {
    this._panResponder = PanResponder.create({
      onStartShouldSetPanResponder: (evt, gestureState) => false,
      onStartShouldSetPanResponderCapture: (evt, gestureState) => true,
      onMoveShouldSetPanResponder: (evt, gestureState) => Math.abs(gestureState.dy) > 5,
      onMoveShouldSetPanResponderCapture: (evt, gestureState) => true,
      onPanResponderMove: this._handlePanResponderMove,
    });
  }

_handlePanResponderMove(event, gestureState) {
    if (gestureState.dy > current) {
      console.log("Down");
    } else {
      console.log("Up");
    }
    current = gestureState.dy;
  }

componentTag() {
   return tabTag.map((item, id) => {
      return(
        <View key={id} >
            <View {...this._panResponder.panHandlers}>
                <Icon name="ios-reorder" ></Icon>
            </View>
        </View>
      );
    });
}

render() {
   return (
     {this.componentTag}
   );
}

我想知道我什么时候在函数_handlePanResponderMove我的数组的id的值,但我不能给函数提供参数

2 个答案:

答案 0 :(得分:1)

handlePanResponderMove中的event参数 为您提供触摸目标的节点ID。 即 Event.nativeEvent.target可以帮助您。

答案 1 :(得分:0)

在使用componentTag关键字的this内,为此,您需要将this绑定到您的方法。

你需要一个像下面这样的构造函数:

constructor() {
   this.componentTag = this.componentTag.bind(this);

   //since you're using this keyword on componentDidMount as well,
   this.componentWillMount = this.componentWillMount.bind(this);
}