2017-11-11 8 views
2

をやっていることREF教えてくださいあなたは、参照を使用して、このような何かを行うことができ、私にREFReactネイティブではRefをどのように使用していますか?ここに私のコードサンプルがあり、ここで

<Camera 
      ref={(cam) => { 
      this.Camera = cam; 
     }} 
      style={styles.preview} 
      aspect={camera.constants.Aspect.fill} > 
      <Text style={styles.capture} 
      onPress = { this.takePicture.bind(this)}> 
      [CAPTURE] 
      </Text> 

</Camera> 
+0

あなたがのためにレフリーが何であるかを求めていますか? https://reactjs.org/docs/refs-and-the-dom.html –

+0

この特定のコードでのrefの使用 – user8275164

+0

このコードの周囲のコンテキストなしでは分かりません。どこかのコードが 'this.Camera'(おそらく)を使っていて、その目的が何であるかを確かめるためにこのコードブロックを見る必要があります。通常のjavascriptの 'document.getElementById()'と同様に、ReactElementにアクセスするためには、通常、 –

答えて

0

を使用する目的を教えてください:

<Camera 
      ref={(cam) => { 
      this.Camera = cam; 
     }} 
      style={styles.preview} 
      aspect={camera.constants.Aspect.fill} > 
      <Text style={styles.capture} 
      onPress = { this.takePicture.bind(this)}> 
      [CAPTURE] 
      </Text> 

</Camera> 

takePicture() { 
    this.Camera.capture() 
     .then((data) => console.log(data)) 
     .catch(err => console.error(err)); 
} 

refへの参照を返します。コンポーネント上記の例では、コンポーネントCameraの参照をthis.Cameraに保存しています(this.xyzなどの名前を付けることができます)。今度はthis.Cameraを使用してCameraコンポーネントのすべてのメソッドにアクセスできます。上記の例では、captureCameraコンポーネントのメソッドで、this.Camera.capture()のように呼び出すことができます。

あなたは理解を容易にするため、このように考えることができ:

Camera = { // your <Camera /> component 
    capture: function(){ console.log('CAPTURE')} 
} 
myCamera = Camera // ref is doing something like this("myCamera" replaces "this.Camera", "Camera" replaces 'cam") 
myCamera.capture() // now you can call methods of Camera Object 
関連する問題