我遇到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的值,但我不能给函数提供参数
答案 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);
}