我正在尝试预览下一个场景中得到的图像,但当我单击相机按钮时,转换不会发生。
import { Actions } from 'react-native-router-flux';
import Camera from 'react-native-camera';
export default class PageTwo extends Component {
render() {
return (
<View style={styles.container} >
<Camera ref={(cam) => { this.camera = cam; }}
style={styles.preview}
aspect={Camera.constants.Aspect.fill}>
<Text style={styles.capture}
onPress={this.takePicture.bind(this)}>
<Icon name="ios-camera"/>
</Text>
</Camera>
</View>
)
}
takePicture() {
this.camera.capture()
.then((data) => {Actions.previewimg});
}
}发布于 2016-12-17 17:19:49
我认为问题在于您没有正确调用路由器转换。Actions拥有一个转换到某个屏幕的函数,在每个<Scene>的key属性中给出了相同的名称。这些都是函数,所以你必须调用它们。更改您的代码以执行以下操作:
takePicture() {
this.camera.capture()
.then((data) => {Actions.previewimg()});
}此外,数据不会被传递到下一个屏幕,除非您明确地这样做。因此,您的代码应该如下所示:
takePicture() {
this.camera.capture()
.then((data) => {Actions.previewimg({data: data}});
}然后,您的previewimg场景将具有一个名为data的额外道具,该道具将保存图像。
发布于 2017-06-14 01:03:36
martinarroyo的答案是正确的方法。你必须正确地调用它,并且为了传递数据,你必须将它作为参数传递。
应用程序崩溃主要发生在Android设备上。您必须检查原生java代码,并将其与权限一起正确插入(许多人忘记了权限)。有时,由于崩溃太频繁,你的相机通常停止工作。因此,给它一些时间,打开你设备的默认相机应用程序,然后再次打开你的应用程序。看起来不错。
https://stackoverflow.com/questions/41185172
复制相似问题