코딩하는 김딸기

택시-App.tsx 본문

카테고리 없음

택시-App.tsx

김딸기* 2024. 12. 16. 02:32

1. import 부분

import React, {useEffect} from 'react';
import {NavigationContainer} from '@react-navigation/native';
import {createStackNavigator} from '@react-navigation/stack';
import {View, StyleSheet, Alert} from 'react-native';
import SearchableList from './components/SelectView'; // SearchableList 컴포넌트 가져오기
import SelectView from './components/SelectView';
import RouteView from './components/RouteView';
import {PathProvider} from './components/PathContext';
import PathDetails from './components/PathDetails'; // PathDetails 컴포넌트
  • React, useEffect: React를 사용하고, 컴포넌트가 마운트될 때 특정 작업을 실행할 수 있게 해주는 useEffect를 불러옵니다.
  • NavigationContainer: 네비게이션을 관리할 수 있는 기본 컴포넌트입니다. 여러 화면을 연결하는데 필요합니다.
  • createStackNavigator: 화면 전환을 스택 방식으로 할 수 있게 도와주는 함수입니다. 이 방식은 하나의 화면을 스택처럼 쌓고, 새로운 화면을 쌓을 때마다 이전 화면으로 돌아갈 수 있게 합니다.
  • View, StyleSheet, Alert: React Native에서 기본적으로 제공하는 컴포넌트와 스타일 관련 기능들입니다. 화면을 구성하고 스타일을 적용하는 데 사용됩니다.
  • SelectView, RouteView, PathDetails: 각각 다른 화면 컴포넌트입니다. 각 컴포넌트는 앱 내에서 다른 기능을 수행하는 화면을 나타냅니다.
  • PathProvider: 컴포넌트들 사이에서 공유할 데이터(경로와 관련된 정보 등)를 관리하는 컨텍스트를 제공합니다.

2. App 컴포넌트

const App = () => {
  return (
    <PathProvider>
      <NavigationContainer>
        <Stack.Navigator>
          <Stack.Screen
            name="RouteView"
            component={RouteView}
            options={{headerShown: false}}
          />
          <Stack.Screen
            name="PathDetails"
            component={PathDetails}
            options={{headerTitle: '상세경로'}}
          />
          <Stack.Screen
            name="SelectView"
            component={SelectView}
            options={{headerShown: false}}
          />
        </Stack.Navigator>
      </NavigationContainer>
    </PathProvider>
  );
};
  • PathProvider: 이 컴포넌트를 앱의 상위 컴포넌트로 감싸면서, 자식 컴포넌트들에서 PathContext를 통해 데이터를 공유할 수 있도록 합니다.
  • NavigationContainer: 이 컴포넌트 안에 네비게이션을 포함시키며, 앱 내에서 화면 간 전환을 관리합니다.
  • Stack.Navigator: 화면 전환을 스택 방식으로 관리할 수 있게 해주는 컴포넌트입니다. 이 안에 여러 화면을 Stack.Screen으로 정의하여 네비게이션 경로를 설정합니다.
    • name: 화면의 이름을 지정합니다.
    • component: 해당 화면에서 표시할 컴포넌트를 지정합니다.
    • options: 화면의 옵션을 설정합니다.
      • headerShown: false: 상단의 헤더를 보이지 않게 합니다.
      • headerTitle: 헤더의 제목을 지정합니다.

3. 화면들에 대한 설명

  • RouteView: 사용자가 경로를 선택할 수 있는 화면입니다.
  • PathDetails: 선택된 경로에 대한 자세한 정보를 보여주는 화면입니다. 이 화면은 headerTitle을 "상세경로"로 설정하여, 제목이 표시됩니다.
  • SelectView: 경로 선택과 관련된 화면을 나타냅니다. 이 화면은 헤더를 표시하지 않도록 설정되었습니다.

4. 스타일 설정

// 스타일
const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
  },
});
  • StyleSheet.create: 스타일을 정의하는 React Native의 방법입니다.
  • container 스타일:
    • flex: 1: 화면 전체를 차지하도록 설정합니다.
    • justifyContent: 'center': 화면의 콘텐츠를 세로로 가운데 정렬합니다.

5. export default App

  • 앱의 메인 컴포넌트인 App을 다른 파일에서 사용할 수 있도록 export 합니다.

요약

  • **PathProvider**로 경로 관련 정보를 앱 전체에서 공유하고, **NavigationContainer**와 **createStackNavigator**를 사용해 화면 간 이동을 관리하는 구조입니다.
  • 3개의 화면(RouteView, PathDetails, SelectView)이 정의되어 있고, 각 화면에서 보여주는 UI와 옵션들이 설정되어 있습니다.
  • **StyleSheet**를 사용해 화면을 스타일링하여 중앙에 내용을 정렬하고 있습니다.

 


1. RouteView

  • 기능: 경로(예: 교통수단이나 길)를 선택하는 화면
  • 사용자가 이 화면에서 다양한 경로를 선택할 수 있습니다. 예를 들어, 목적지까지 가는 여러 가지 경로 중 하나를 고를 수 있게 하는 화면입니다.
  • 이 화면은 경로를 보여주거나 선택할 수 있는 목록을 제공하고, 사용자가 원하는 경로를 선택하면 다른 화면으로 전환됩니다.

2. PathDetails

  • 기능: 선택된 경로에 대한 상세 정보를 보여주는 화면
  • 사용자가 RouteView에서 선택한 경로에 대한 더 자세한 정보를 제공합니다. 예를 들어, 경로의 세부 사항(예: 거리, 소요 시간, 경유지 등)을 보여줄 수 있습니다.
  • 이 화면에서는 경로에 대한 구체적인 정보나 옵션들을 표시하여, 사용자가 경로에 대한 세부 정보를 알 수 있도록 도와줍니다.

3. SelectView

  • 기능: 경로를 선택하는 화면 (RouteView와 비슷하지만 역할이 다를 수 있음)
  • 이 화면은 사용자에게 여러 선택지를 제공하고, 선택을 하게 만들어 다른 화면으로 넘어가는 역할을 합니다. 예를 들어, 출발지와 목적지를 선택하는 화면일 수 있습니다.
  • 이 화면은 경로 선택을 위한 첫 단계일 수도 있고, 경로와 관련된 다른 중요한 설정을 할 수 있는 화면일 수 있습니다.

요약:

  • RouteView: 경로를 선택하는 화면.
  • PathDetails: 선택된 경로의 세부 정보를 제공하는 화면.
  • SelectView: 사용자가 선택할 수 있는 다양한 옵션을 제공하는 화면 (경로 선택과 관련된 다른 설정을 다룰 수 있음).
 
4o mini