javascript - 使用带有 react-native-navigation 的 react-native-camera
问题描述
我刚刚开始 react-native 并制作了一个多屏幕 android 应用程序(通过使用react-native-navigation
. 我的屏幕是屏幕导航示例中所示的功能,但现在我想在第二个屏幕中使用相机。
关于我的代码外观的想法:
import React, {Component} from 'react';
import { Platform, StyleSheet, Text, View, ScrollView, TextInput, Button, Image } from 'react-native';
import {NavigationContainer} from '@react-navigation/native';
import {createStackNavigator} from '@react-navigation/stack';
import { RNCamera, FaceDetector } from 'react-native-camera';
export default function App() {
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen
name="Screen1"
component={Screen1}
/>
<Stack.Screen name="Screen2" component={Screen2} />
</Stack.Navigator>
</NavigationContainer>
);
}
function Screen1({navigation}) {
return (
<View style={styles.container}>
<Button
title="Go to screen 2"
onPress={() => navigation.navigate('Screen2', {mode: 'dev'})} // passing parameters: mode
/>
</View>
);
}
function Screen2({navigation}) {
return (
<View>
<RNCamera
ref={ref => {
this.camera = ref
}}
style={styles.scanner}
/>
</View>
);
}
我得到错误:TypeError: undefined is not an object (evaluating '_this.camera=_ref3')
在screen2中。
react-native-navigation
虽然当我将应用程序定义为一个类并将相机放在第一个屏幕上时不会出现此错误(并且由于使用屏幕功能而无法导航)。
抱歉,如果我听起来很天真,我是新手。
解决方案
我没有使用过这些软件包,但它看起来像您ref
和使用this
. 我通常将类组件用于需要引用的任何内容,因此您可以尝试像这样编写 Screen2:
class Screen2 extends Component {
camera;
render() {
return (
<View>
<RNCamera ref={ref => (this.camera = ref)} style={styles.scanner} />
</View>
);
}
}
基本上,在Screen2
挂载时,您使用一个名为camera
. 一旦相机组件渲染,它就会将自身的引用分配给Screen2
'scamera
成员。然后该 ref 将让您直接操作您的相机组件(使用this.camera
)。
推荐阅读
- docker - Github Actions,自托管运行器:可以向“docker create”添加选项吗?
- c# - 无法加载文件或程序集“Microsoft.Diagnostics.Tracing.EventSource”异常
- java - 试图从android应用程序获取TokenSilentAsync
- javascript - 使用时覆盖反应组件
- javascript - 我想在 discord.js 上创建一个自动角色
- excel - 在 Excel 中,如何将四个数字转换为 '00:00 AM/PM' 格式?
- java - 如何在不使用 Sceneform 的情况下使用 openGL 将文本添加到 Arcore 3D 对象?
- ckeditor4.x - 如何防止CKEdictor替换括号
- git - 如何重新启动服务在 docker 中运行而不重新启动 docker image 或 docker image stop working
- xml - XSLT 从 XMLNS/XML 获取正确的 GUID