使本机磁通路由器与本机相机反应

时间:2016-12-16 13:10:27

标签: react-native react-native-router-flux react-native-camera

我正在尝试预览下一个场景中的图像,但是当我点击相机按钮时不会发生转换。

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});
 }
}

2 个答案:

答案 0 :(得分:0)

我认为问题在于您没有正确调用路由器转换。 Actions拥有一个功能,可以转换到某个屏幕,并在每个key的{​​{1}}道具中指定相同的名称。这些是函数,所以你必须调用它们。将代码更改为:

<Scene>

此外,除非明确说明,否则数据不会传递到下一个屏幕。所以你的代码应该是这样的:

takePicture() {
     this.camera.capture()
       .then((data) => {Actions.previewimg()});
}

然后你的takePicture() { this.camera.capture() .then((data) => {Actions.previewimg({data: data}}); } 场景会有一个名为previewimg的额外道具,可以保存你的形象。

答案 1 :(得分:0)

马丁纳罗约的答案是正确的做法。您必须正确调用它并传递您必须传递的数据作为参数。

应用程序主要在Android设备上崩溃。您必须检查您的本机Java代码并将其与权限一起正确插入(许多人忘记了权限)。有时由于经常崩溃,您的相机一般会停止工作。所以,给它一些时间并打开设备的默认相机应用程序,然后再次打开你的应用程序。它会起作用。