2016-05-06 12 views
0

Im new to react native。 親ファイルと子ファイルの2つのファイルがあります。子ファイルから親ファイルのコールバックを受信します。値が変数ネイティブに割り当てられていません

このコールバックでは、スクリーンショットに添付されているように、私はthis.positionIdの値を持っていますが、その変数を別の変数に割り当てると 'undefined'という結果になります。誰がなぜこれが起こっているのか教えてもらえますか?あなたがラインthis.props.releaseValues(E、ジェスチャー)を見ることができるように

componentWillMount: function() { 
this._animatedValueX = 0; 
this._animatedValueY = 0; 
this.state.pan.x.addListener((value) => this._animatedValueX = value.value); 
this.state.pan.y.addListener((value) => this._animatedValueY = value.value); 
    this._panResponder = PanResponder.create({ 
    onMoveShouldSetResponderCapture:() => true, //Tell iOS that we are allowing the movement 
    onMoveShouldSetPanResponderCapture:() => true, // Same here, tell iOS that we allow dragging 
    onPanResponderGrant: (e, gestureState) => { 
     this.state.pan.setOffset({x: this._animatedValueX, y: this._animatedValueY}); 
     this.state.pan.setValue({x: 0, y: 0}); //Initial value 
    }, 
    onPanResponderMove: Animated.event([ 
     // null, 
     // { 
     // dx: this.state.pan.x, dy: this.state.pan.y 
     // } 
    ]), // Creates a function to handle the movement and set offsets 
    onPanResponderRelease: (e, gesture) => { 
     this.state.pan.flattenOffset(); // Flatten the offset so it resets the default positioning 
     this.props.releaseValues(e, gesture); 
    } 
    }); 
    }, 

が親コントローラへのコールバックを与える:

子供のjsファイルが含まれていpanResponder。

positionID成分のコード - >

addElements: function(){ 
return this.props.ElementsToBeAdded.map(function(element,key){ 
    return <DraggableView 
     color={element} 
     positionId={key} 
     key={key} 
     releaseValues={(e, gesture) => { 
     if(((gesture.moveX > (currentX + currentWidht)) || 
      (gesture.moveX < currentX)) || 
      ((gesture.moveY > (currentY + currentHeight)) || 
      (gesture.moveY < currentY))) 
     { 
      _this.setState({positionID:this.positionId}); 
      _this.props.releaseValuesFirstView(e,gesture,0); 
     } 
     else { 
      _this.props.releaseValuesFirstView(e,gesture,-1); 
     } 
     } 
    } /> 
}); 
}, 

enter image description here

+0

でコードにアクセスできますか? –

+0

なぜこの変数をここで宣言し、直接渡さないのですか?また、変数に同じ名前を使用しないでください。 –

+0

@RadekCzemerysは変数を直接送信することを試みましたが、それでも同じ問題を示しています。同じ名前でも試してみました。 – Rajesh

答えて

0

positionIdDraggableViewコンポーネントに支柱です。コンポーネントの外部では使用できません。代わりにkeyを使用できます。 DraggableViewコンポーネント内では、this.props.positionId

関連する問題