Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当通过导航器打开2次时,react native camera会冻结应用程序_Javascript_Ios_Camera_React Native - Fatal编程技术网

Javascript 当通过导航器打开2次时,react native camera会冻结应用程序

Javascript 当通过导航器打开2次时,react native camera会冻结应用程序,javascript,ios,camera,react-native,Javascript,Ios,Camera,React Native,我在一个视图中使用这个库,该视图包含在一个简单的组件中 在您导航回主视图并尝试使用重新加载视图之前,一切正常。控制台或Xcode中没有错误消息,这使得确定问题非常困难 当我删除整个组件时,导航按预期工作,视图重新加载良好 github上目前有一个开放的问题,但由于时间至关重要,我想知道是否有其他人找到了这个问题的解决方案并可以共享修复方案 标准渲染方法: render() { return ( <View style={styles.outer}>

我在一个视图中使用这个库,该视图包含在一个简单的
组件中

在您导航回主视图并尝试使用
重新加载视图之前,一切正常。控制台或Xcode中没有错误消息,这使得确定问题非常困难

当我删除整个
组件时,导航按预期工作,视图重新加载良好

github上目前有一个开放的问题,但由于时间至关重要,我想知道是否有其他人找到了这个问题的解决方案并可以共享修复方案

标准渲染方法:

render() {

    return (
        <View style={styles.outer}>

            <Overlay
                modalVisible={this.state.modalVisible}
                />

            <Camera
                ref="cam"
                style={styles.container}
                captureTarget={Camera.constants.CaptureTarget.disk}
                type={this.state.cameraType}>

                <TouchableHighlight style={styles.circlebutton} onPress={this._takePicture}>
                    <Text>Take Picture</Text>
                </TouchableHighlight>
            </Camera>

            <Image
                source={{uri: this.state.imageURI, isStatic:true}}
                style={{width: this.state.imageURI ? 100 : 0, height: this.state.imageURI ? 100 : 0, opacity: this.state.imageURI ? 1 : 0}}
                />
        </View>
    );
}
render(){
返回(
拍照
);
}
试试这个:

在Xcode上,转到
RCTCamera.xcodeproj
(这是react本机库之一)

RCTCameraManager.h

添加属性
@property(非原子,强)RCTCamera*摄像机

RCTCameraManager.m

- (UIView *)view
{
    return [[RCTCamera alloc] initWithManager:self bridge:self.bridge];
}
替换为:

- (UIView *)view
{
    if(!self.camera){
        self.camera = [[RCTCamera alloc] initWithManager:self bridge:self.bridge];
        return self.camera;
    }
    return self.camera;
}

希望这能有所帮助。

先生,你是个天才和学者。我很幸运能和你在同一个半球工作。成功了。