인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

배달앱 클론코딩 [with React Native]

리액트 내비게이션 사용해보기

안드로이드 앱을 실행하면 바로꺼집니다.

작성

·

394

0

안녕하세요 강사님

지금 리액트 내비게이션 만들기를 하고 있습니다.

지금 App.tsx를 교체를 했는데 앱을 실행했을 때 바로 종료가 됩니다.

gif 사진을 달아놨습니다.

ezgif.com-gif-maker (1).gif

import * as React from 'react';
import {NavigationContainer, ParamListBase} from '@react-navigation/native';
import {
  createNativeStackNavigator,
  NativeStackScreenProps,
} from '@react-navigation/native-stack';
import {Text, TouchableHighlight, View} from 'react-native';
import {useCallback} from 'react';

type RootStackParamList = {
  Home: undefined;
  Details: undefined;
};
type HomeScreenProps = NativeStackScreenProps<RootStackParamList, 'Home'>;
type DetailsScreenProps = NativeStackScreenProps<ParamListBase, 'Details'>;

function HomeScreen({navigation}: HomeScreenProps) {
  const onClick = useCallback(() => {
    navigation.navigate('Details');
  }, [navigation]);

  return (
          <View style={{flex: 1, alignItems: 'center', justifyContent: 'center'}}>
            <TouchableHighlight onPress={onClick}>
              <Text>Home Screen</Text>
            </TouchableHighlight>
          </View>
  );
}

function DetailsScreen({navigation}: DetailsScreenProps) {
  const onClick = useCallback(() => {
    navigation.navigate('Home');
  }, [navigation]);

  return (
          <View style={{flex: 1, alignItems: 'center', justifyContent: 'center'}}>
            <TouchableHighlight onPress={onClick}>
              <Text>Details Screen</Text>
            </TouchableHighlight>
          </View>
  );
}

const Stack = createNativeStackNavigator<RootStackParamList>();
function App() {
  return (
          <NavigationContainer>
            <Stack.Navigator initialRouteName="Home">
              <Stack.Screen
                      name="Home"
                      component={HomeScreen}
                      options={{title: 'Overview'}}
              />
              <Stack.Screen name="Details">
                {props => <DetailsScreen {...props} />}
              </Stack.Screen>
            </Stack.Navigator>
          </NavigationContainer>
  );
}

export default App;

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

에러메시지를 확인해야 하는데요. 메트로 콘솔이나 안드로이드 스튜디오 LogCat에 에러메시지가 있을 겁니다.

선생님 해결했습니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기