2017-10-19 17 views
0

に反応:PanResponderは私が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} 
    ); 
} 

私は関数の中で私の配列のIDの値を_handlePanResponderMoveていたときに知っていただきたいと思いますが、私はパラメータを与えることができません関数に

+0

コンストラクタを含むすべてのコンポーネントを表示します。すべて、これは情報が少なすぎます。 –

+0

私はコンストラクタを持っていません私のPanResponder.createはcomponentWillMountにあります –

答えて

0

thisキーワードを使用している場合は、thisをメソッドにバインドする必要があります。 handlePanResponderMove で

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

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

すべてを修正するとは言わないが、あなたの 'undefined'エラーの一部を修正します –

+0

申し訳ありませんが、私は何をしたいのか分からないと思います。 _handlePanResponderMove関数で配列のidを知りたいが、読み込み用のタンクは:) –

+0

コンポーネントがUIでレンダリングされていることは確かですか?あなたは画面上のものを見ることができますか?とにかく、ここには物事があり、あなたは鍵のidを使っていて、あなたが現在いる鍵にアクセスすることはできません。他の小道具に渡す必要があります。私は、現在の状態を設定し、その状態を経由してアクセスするハンドラを作成します。 –

1

イベントパラメータはあなたのタッチのターゲットのノードIDを付与します。

は、次のようなコンストラクタを必要とします。 .Ie Event.nativeEvent.targetがこれを手伝ってくれます。

関連する問題