Я только что начал реагировать на родную систему и создал многоэкранное приложение 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
использует функции для экранов).
Извиняюсь, если я звучу наивно, я новичок, чтобы реагировать.