反应本机相机在通过导航器打开 2 次时冻结应用程序
react-native-camera freezes app when opened 2 times via navigator
我在包含在简单<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>
);
}
试试这个:
在 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;
}
希望这是有帮助的。
相关文章:
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- Emberjs应用程序加载在除Index之外的所有路由上
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- angular 1.5应用程序中的导航栏
- 在Web应用程序中使用Highcharts javascript
- angularjs+rails应用程序中未显示模板
- 交互和目标保存冻结应用程序
- 当调用JS函数具有alert()时,应用程序将被冻结
- Cordova应用程序在安卓系统上运行,但线程似乎在ios上冻结了;“由于页面加载而重置插件”;
- 基于Ionic和AngularJS的模态对话框导致应用程序冻结
- 执行流星重置时,登录用户的应用程序页面冻结
- 在指令中使用模板网址会冻结应用程序
- iPad 网络应用程序在 Safari 中打开链接后冻结
- 应用程序打开后冻结,Phonegap警报不起作用
- 反应本机相机在通过导航器打开 2 次时冻结应用程序
- PhantomJS.在我的rails应用程序中尝试屏幕捕获页面时Rb冻结
- Cordova应用程序在启动屏幕冻结
- NodeJS:如果冻结对象,应用程序会运行得更快吗