【问题标题】:react-native-camera freezes app when opened 2 times via navigatorreact-native-camera 在通过导航器打开 2 次时冻结应用程序
【发布时间】:2015-10-09 19:48:20
【问题描述】:

我在一个简单的<Navigator /> 组件中包含的视图中使用https://github.com/lwansbrough/react-native-camera 库。

在您导航回主页视图并尝试使用<Camera /> 重新加载视图之前,一切都按预期进行。控制台或 Xcode 中没有错误消息,这使得很难查明问题。

当我删除整个 <Camera /> 组件时,导航按预期工作并且视图重新加载正常。

目前在 github https://github.com/lwansbrough/react-native-camera/issues/80 上有一个未解决的问题,但由于时间紧迫,我想知道是否有其他人找到了解决此问题的方法并可以分享解决方法。

标准渲染方法:

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

【问题讨论】:

    标签: javascript ios camera react-native


    【解决方案1】:

    试试这个:

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

    RCTCameraManager.h

    添加属性 @property (nonatomic, strong) RCTCamera *camera;

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

    希望对你有帮助。

    【讨论】:

    • 先生,您是个天才和学者。我很幸运能和你在同一个半球工作。它奏效了。
    猜你喜欢
    • 2022-10-05
    • 2016-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多