这是我的代码示例,请告诉我使用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 :(得分: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
或其他任何名称)。现在,您可以使用Camera
访问this.Camera
组件的所有方法。在上面的示例中,capture
是Camera
组件的一种方法,您可以像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